Skip to main content
You sign your ladder and send it over a WebSocket. Biconomy writes it onchain and pays the gas.

Connect and subscribe

Send your API key in the x-api-key header of the connection request. Without a valid key the server refuses the connection with HTTP 401. One signer per connection. Ladders for several chains can share it.

Messages

Rewrite sends the whole ladder on every update. Reprice sends the ladder once, then a single price number on every update. Rewrite sends the whole ladder on every update. Reprice sends the ladder once, then a single price number on every update. Rewrite sends the whole ladder on every update. Reprice sends the ladder once, then a single price number on every update. Rewrite sends the whole ladder on every update. Reprice sends the ladder once, then a single price number on every update. In Reprice mode each step prices at the anchor minus its discount. An anchor message holds one entry per pair, up to 32. Each entry prices both directions of its pair: the direction you sign at price, the reverse at 1e36 / price, rounded down.

Common fields

Exact structs and wire formats are in the Message reference.

Nonces and expiry

A nonce or timestampMs at or below the last accepted one returns STALE_NONCE. Unix milliseconds work as nonces.

Runnable client

Reprice mode on Base Sepolia: one offsets message for WETH to USDC, then every second one anchor message whose single entry prices both directions of the pair. Replace yourPrice() with your engine’s price in raw units. To quote USDC to WETH as well, sign an offsets message for that direction; the same anchor entry prices it.
For Rewrite, sign PriceLadder (levels of { size, price }, timestampMs set to when you priced it, primaryType: "PriceLadder") on every tick and send it as type: "price-ladder". A client that samples a pricing curve into a ladder is in curve-maker-reference.ts. In Rewrite each direction of a pair is a separate ladder.

Common errors

Full list in the Message reference.

Limits