Skip to main content
In a nutshell
Blockradar’s Liquidity Pool allows approved Liquidity Providers (LPs) to define and manage exchange rates for asset pairs. Rates power the internal swap engine — when a user initiates a swap, the system automatically selects the best available rate from active LPs, validates liquidity, and executes the transaction.
Blockradar Liquidity Pool Rates

Prerequisites

Before using the Liquidity Pool API, ensure you have:
1

Become a Liquidity Provider

The Liquidity Pool is available to approved Liquidity Providers only. To get started, email the Blockradar team at [email protected] expressing your interest in becoming an LP and we will onboard you.
2

API Key

Once onboarded, generate an API key from the Blockradar Dashboard. Navigate to Developers to create one.
3

Fund Your Wallets

Ensure your treasury wallets have sufficient balance of the assets you plan to provide liquidity for, plus native tokens to cover network fees.

How It Works

As a Liquidity Provider, you define exchange rates for asset pairs (e.g., BNB → USDC). When a user on the Blockradar platform initiates a swap, the system:
  1. Finds matching rates from all active LPs for the requested asset pair.
  2. Ranks candidates by best rate, LP priority, and creation time.
  3. Validates liquidity by checking the selected LP’s treasury wallet has enough balance to fulfill the swap.
  4. Executes the swap using the selected LP’s rate and treasury.

Rate Management

Create, update, deactivate, and reactivate exchange rates for any supported asset pair.

Amount Bands

Define minimum and maximum transaction amounts per rate to control exposure and segment pricing tiers.

Version History

Every rate change creates a new version. Full history is preserved for auditing and analytics.

Automatic Selection

The system automatically selects the best LP for each swap based on rate, priority, and available liquidity.

Rate Lifecycle

Rates follow a clear lifecycle with full version tracking:

1. Create a Rate

Define a new exchange rate for an asset pair. The rate starts as active at version 1.
curl --request POST \
  --url https://api.blockradar.co/v1/rates \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '{
    "fromAsset": "BNB",
    "toAsset": "USDC",
    "rate": "605.50",
    "minAmount": "0.01",
    "maxAmount": "100"
  }'

Request Parameters

ParameterTypeRequiredDescription
fromAssetstringYesThe symbol of the asset to convert from (e.g., BNB)
toAssetstringYesThe symbol of the asset to convert to (e.g., USDC)
ratestringYesThe exchange rate. Provided as a string to avoid floating point precision issues
minAmountstringYesMinimum transaction amount for this rate (inclusive)
maxAmountstringNoMaximum transaction amount (exclusive). Omit for unlimited

Create Response

{
  "message": "Rate created successfully",
  "statusCode": 201,
  "data": {
    "id": "d69078ef-2467-40f4-bb00-63394efe32c0",
    "fromAsset": "BNB",
    "toAsset": "USDC",
    "rate": "605.50",
    "minAmount": "0.01",
    "maxAmount": "100",
    "isActive": true,
    "status": "active",
    "version": 1,
    "network": "testnet",
    "createdAt": "2026-02-19T07:50:17.042Z"
  }
}

2. Update a Rate

Modify the rate or amount constraints for an existing active rate. This creates a new version — the previous version is automatically marked as superseded.
curl --request PATCH \
  --url https://api.blockradar.co/v1/rates/{id} \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '{
    "rate": "610.00",
    "minAmount": "0.005"
  }'
Only provide the fields you want to change — partial updates are supported.

3. Deactivate a Rate

Temporarily take a rate offline. The rate becomes deactivated and will no longer be selected for swaps.
curl --request POST \
  --url https://api.blockradar.co/v1/rates/{id}/deactivate \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '{
    "reason": "Pausing for maintenance"
  }'

4. Reactivate a Rate

Bring a deactivated rate back online. This creates a new version with active status.
curl --request POST \
  --url https://api.blockradar.co/v1/rates/{id}/reactivate \
  --header 'x-api-key: <api-key>'

Rate Versioning

Every time a rate is updated or reactivated, a new version is created. The previous version is marked as superseded. This provides a complete audit trail.
FieldDescription
versionSequential version number starting at 1
rootRateIdPoints to the original rate — all versions in a chain share this ID
previousRateIdPoints to the immediately preceding version

Version Chain Example

v1 (active)  →  v2 (active, v1 superseded)  →  v3 (deactivated)  →  v4 (active, v3 superseded)

View Rate History

Retrieve the full version history for a rate:
curl --request GET \
  --url https://api.blockradar.co/v1/rates/{id}/history \
  --header 'x-api-key: <api-key>'

History Response

{
  "message": "Rate history retrieved successfully",
  "statusCode": 200,
  "data": {
    "currentVersion": 2,
    "rootRateId": "d69078ef-2467-40f4-bb00-63394efe32c0",
    "history": [
      {
        "id": "d69078ef-2467-40f4-bb00-63394efe32c0",
        "fromAsset": "BNB",
        "toAsset": "USDC",
        "rate": "605.50",
        "minAmount": "0.01",
        "status": "superseded",
        "version": 1,
        "createdAt": "2026-02-19T07:50:17.042Z"
      },
      {
        "id": "cad01df3-4041-4e81-a368-534fb4de5d12",
        "fromAsset": "BNB",
        "toAsset": "USDC",
        "rate": "610.00",
        "minAmount": "0.005",
        "status": "active",
        "version": 2,
        "createdAt": "2026-02-19T07:59:35.481Z"
      }
    ]
  },
  "meta": {
    "currentPage": 1,
    "itemCount": 2,
    "itemsPerPage": 10,
    "totalItems": 2,
    "totalPages": 1
  }
}

Rate Statuses

StatusDescription
activeCurrently live and eligible for swap selection
supersededReplaced by a newer version (via update or reactivate)
deactivatedManually taken offline — can be reactivated
superseded is a terminal state — these records are historical and cannot be modified.

Amount Bands

Each rate covers a transaction amount range defined by minAmount and maxAmount:
  • minAmount — The inclusive lower bound. Transactions below this amount will not use this rate.
  • maxAmount — The exclusive upper bound. Set to null (omit) for unlimited.

Multiple Rates for the Same Pair

You can create multiple rates for the same asset pair with different amount bands to offer tiered pricing:
RateBandUse Case
605.000.01 – 10 BNBSmall transactions
606.5010 – 100 BNBMedium transactions
608.00100+ BNBLarge transactions
Amount bands for the same asset pair must not overlap. The system will reject a rate if its band overlaps with another active rate for the same pair.

Liquidity Validation

Before executing a swap using your rate, the system validates that your treasury wallet has:
  1. Sufficient token balance of the destination asset to cover the swap output (amount x rate).
  2. Sufficient native token balance (ETH, BNB, etc.) to cover network fees for the transfer.
If your wallet balance is insufficient, the system skips your rate and moves to the next available LP. You will receive an alert via email when your liquidity is low.
Keep your treasury wallets well-funded to avoid missed swap opportunities. The system will notify you when balances drop below thresholds.

Best Practices

Rate Management

  • Monitor market conditions and update rates regularly to stay competitive
  • Use amount bands to offer tiered pricing for different transaction sizes
  • Deactivate rates during maintenance or high volatility instead of deleting them
  • Review version history to track rate changes over time

Liquidity

  • Maintain sufficient balance in your treasury wallets for both the destination asset and native tokens
  • Set up monitoring for low balance alerts
  • Fund wallets proactively to avoid gaps in service

Security

  • Restrict API access to authorized team members with the MARKET_MAKER, ADMIN, or OWNER role
  • Test on testnet before deploying rates to mainnet

API Reference

EndpointDescription
Create RateCreate a new exchange rate for an asset pair
Get RateRetrieve a single rate by ID
Update RateUpdate an existing rate (creates a new version)
Deactivate RateTake a rate offline
Reactivate RateBring a deactivated rate back online
Get Rate HistoryView full version history for a rate

Support

The Liquidity Pool is designed for institutional and professional liquidity providers. Start by contacting the Blockradar team to get onboarded, then test your rate configurations on testnet before going live.