Skip to main content
GET
/
v1
/
price
Get live orderbook
curl --request GET \
  --url https://propamm.kipseli.win/v1/price
{
  "blockNumber": 29500000,
  "blockTime": 1741737600,
  "pairs": [
    {
      "baseToken": "0x4200000000000000000000000000000000000006",
      "quoteToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "bids": [
        {
          "price": "3200.50",
          "amount": "1.0"
        },
        {
          "price": "3198.00",
          "amount": "5.0"
        },
        {
          "price": "3190.25",
          "amount": "10.0"
        }
      ],
      "asks": [
        {
          "price": "3201.75",
          "amount": "1.0"
        },
        {
          "price": "3204.00",
          "amount": "5.0"
        },
        {
          "price": "3210.50",
          "amount": "10.0"
        }
      ]
    },
    {
      "baseToken": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf",
      "quoteToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "bids": [
        {
          "price": "97500.00",
          "amount": "0.01"
        },
        {
          "price": "97200.00",
          "amount": "0.05"
        }
      ],
      "asks": [
        {
          "price": "97600.00",
          "amount": "0.01"
        },
        {
          "price": "97900.00",
          "amount": "0.05"
        }
      ]
    }
  ]
}
Returns the live on-chain orderbook for all configured token pairs. The cache is refreshed on every new block via eth_subscribe, so the response always reflects the most recent chain state. Use this endpoint to get current market prices before executing a swap, or to display market depth to users.

Understanding the Orderbook

  • bids — prices at which PropAMM will buy the base token (you sell base, receive USDC). Sorted descending.
  • asks — prices at which PropAMM will sell the base token (you buy base, pay USDC). Sorted ascending.
  • Each level is marginal — independent price points, not cumulative depth.
  • Prices and amounts are decimal strings to preserve EVM-scale precision.
If the cache has not been populated yet (service just started), pairs may be empty.

Alternative: On-chain Quote

For a precise quote for a specific input amount, use the on-chain quote() function with an EIP-712 signature. See the Integration Guide.

Response Fields

Top-level

FieldTypeDescription
blockNumberintegerBlock at which the orderbook was last refreshed
blockTimeintegerUnix timestamp (seconds) of that block
pairsarrayOne entry per configured token/USDC pair

pairs[].PairOrderbook

FieldTypeDescription
baseTokenstringEVM address of the non-USDC token (e.g. WETH)
quoteTokenstringEVM address of the USDC token
bidsarrayBuy-side levels, sorted by descending price
asksarraySell-side levels, sorted by ascending price

bids[].OrderbookLevel / asks[].OrderbookLevel

FieldTypeDescription
pricestringUSDC per token, decimal string (e.g. "3200.50")
amountstringToken quantity, decimal string (e.g. "1.5")

Response

Current orderbook snapshot

blockNumber
integer<int64>

The on-chain block number at which the orderbook was last refreshed. Updates on every new block. Zero if the cache has not been populated yet.

Example:

29500000

blockTime
integer<int64>

Unix timestamp (seconds) of the block identified by blockNumber. Zero if the cache has not been populated yet.

Example:

1741737600

pairs
object[]

Orderbook for each configured token/USDC pair. Empty if the cache has not been populated yet (e.g. service just started).