ACTIVE, PAUSED, EXHAUSTED, CLOSED) as the Maker manages their liquidity.
Most ad endpoints return blockchain transaction data (contract address, signature, auth token) that your application must submit to the smart contract to finalize the operation on-chain. After the on-chain transaction is confirmed, call the corresponding /confirm endpoint to notify the relayer.
All amounts are expressed in the smallest unit of the token (e.g., wei for EVM tokens, stroops for Stellar). Always pass amounts as decimal strings, not numbers, to avoid integer overflow.
GET /v1/ads
List ads with optional filters. Returns a paginated list.Query parameters
Filter by route UUID. Only ads that belong to this route are returned.
Filter by the ad creator’s blockchain address.
Filter by the chain ID of the source (ad) token.
Filter by the chain ID of the destination (order) token.
Filter by the UUID of the source token.
Filter by the UUID of the destination token.
Filter by ad status. One of
"ACTIVE", "PAUSED", "EXHAUSTED", or "CLOSED".Pagination cursor from a previous response’s
nextCursor field.Number of results to return per page.
Response fields
Array of ad objects. See the Ad object fields section below.
Cursor for the next page.
null when you have reached the last page.GET /v1/ads/:id
Retrieve a single ad by its UUID.Path parameters
UUID of the ad to retrieve.
Response fields
Returns a single Ad object.POST /v1/ads/create
Create a new liquidity ad. The response contains signed transaction data that you must submit to theAdManager smart contract on-chain to activate the ad. After the transaction is mined, call POST /v1/ads/:id/confirm with the transaction hash.
Requires authentication.
Request body
UUID of the route this ad will serve. Determines the source and destination token pair.
The destination blockchain address where the Maker will receive bridged funds.
Initial amount to deposit into the ad pool, in the smallest token unit (e.g.,
"1000000000" for 1000 USDC with 6 decimals).Minimum trade amount the ad will accept, in the smallest token unit. Optional.
Maximum trade amount the ad will accept, in the smallest token unit. Optional.
Arbitrary JSON metadata to associate with the ad (e.g., display name, fee rate).
Response fields
Chain ID where the
AdManager contract is deployed.Address of the
AdManager contract to call.Relayer signature authorizing the transaction.
Relayer signer public key. Returned for Stellar chains only.
Request authorization token to pass to the contract.
Seconds until the signed request expires and must be re-requested.
The relayer-assigned identifier for this ad.
Token contract address for the ad (source) token.
Initial funding amount confirmed by the relayer.
Chain ID of the destination (order) chain.
Recipient address for the ad on the source chain.
Hash of the relayer-signed request, used for on-chain verification.
Chain family of the ad contract:
"EVM" or "STELLAR".POST /v1/ads/:id/fund
Add more tokens to an existing ad’s liquidity pool. Returns signed transaction data to submit to theAdManager contract. After the transaction is confirmed, call POST /v1/ads/:id/confirm.
Requires authentication.
Path parameters
UUID of the ad to fund.
Request body
Amount to add to the pool, in the smallest token unit.
Response fields
Chain ID of the
AdManager contract.Address of the
AdManager contract to call.Relayer signature for this funding request.
Request authorization token to pass to the contract.
Seconds until this signed request expires.
The ad identifier.
Funding amount confirmed by the relayer.
Hash of the relayer-signed request.
"EVM" or "STELLAR".POST /v1/ads/:id/withdraw
Initiate a partial withdrawal from an ad’s pool. Returns signed transaction data to submit to theAdManager contract. After the transaction is confirmed, call POST /v1/ads/:id/confirm.
Requires authentication.
Path parameters
UUID of the ad to withdraw from.
Request body
Amount to withdraw from the pool, in the smallest token unit.
Destination address to receive the withdrawn funds.
Response fields
Chain ID of the
AdManager contract.Address of the
AdManager contract to call.Relayer signature for this withdrawal request.
Request authorization token.
Seconds until this signed request expires.
The ad identifier.
Withdrawal amount confirmed by the relayer.
Destination address for the withdrawn funds.
Hash of the relayer-signed request.
"EVM" or "STELLAR".POST /v1/ads/:id/confirm
Notify the relayer that a previously-initiated blockchain transaction (create, fund, or withdraw) has been confirmed on-chain. This updates the ad’s state in the relayer database. Requires authentication.Path parameters
UUID of the ad.
Request body
Transaction hash of the confirmed on-chain transaction.
Optional additional signature for the confirmation.
Response fields
UUID of the confirmed ad.
true when the relayer successfully recorded the confirmation.PATCH /v1/ads/:id/update
Update mutable parameters on an existing ad. You can change the ad’s status, min/max trade amounts, or metadata without an on-chain transaction. Requires authentication.Path parameters
UUID of the ad to update.
Request body
New status for the ad. Must be
"ACTIVE" or "PAUSED".New minimum trade amount in the smallest token unit.
New maximum trade amount in the smallest token unit.
Updated metadata to replace the existing ad metadata.
Response fields
UUID of the updated ad.
Address of the ad creator.
Updated minimum amount, or
null if unset.Updated maximum amount, or
null if unset.Updated metadata.
POST /v1/ads/:id/close
Permanently close an ad and withdraw all remaining funds. Returns signed transaction data to submit to theAdManager contract. This action is irreversible.
Requires authentication.
Path parameters
UUID of the ad to close.
Request body
Address to receive the remaining pool balance when the ad is closed.
Response fields
Chain ID of the
AdManager contract.Address of the
AdManager contract to call.Relayer signature for this close request.
Request authorization token.
Seconds until this signed request expires.
The ad identifier.
Destination address for the remaining funds.
Hash of the relayer-signed request.
"EVM" or "STELLAR".Ad object fields
The following fields appear on every ad object returned byGET /v1/ads and GET /v1/ads/:id.
UUID of the ad.
Blockchain address of the Maker who created the ad.
UUID of the cross-chain route this ad serves.
UUID of the source (ad) token.
UUID of the destination (order) token.
Total amount ever deposited into this ad’s pool, in the smallest token unit.
Current available (unlocked) balance in the pool, in the smallest token unit.
Minimum trade amount the ad accepts, or
null if no minimum is set.Maximum trade amount the ad accepts, or
null if no maximum is set.Current ad status:
"ACTIVE", "PAUSED", "EXHAUSTED", or "CLOSED".Arbitrary metadata set by the Maker. Can be
null.Same structure as
adToken, for the destination token.ISO 8601 timestamp of when the ad was created.
ISO 8601 timestamp of the last update to the ad.