Skip to main content
POST
Prepare a purchase at the displayed ask price
Send the exact asking price the buyer reviewed. If it changed, refresh the order book and show the new price. Once the buyer signs, submit the purchase.On testnet, send expiresAt: null for the default expiry. Until the mainnet release, omit both expiresAt and expiresInSeconds for the mainnet default.The buyer must have enough USDT approved for Permit2 when submitting the purchase.

Request

Builder key required

Response

Error codes

Match the HTTP status and response text to a row below. For guidance on codes shared across endpoints, see Error meanings and recovery.

Authorizations

x-builder-api-key
string
header
required

Your approved builder API key. Keep it on your backend. Gacha and marketplace writes also require wallet action signatures. Redeem also needs a wallet access token, a Bearer token the API issues after the wallet signs a sign-in message.

Body

application/json
tokenId
string
required

On-chain card ID as a decimal uint256 string.

Pattern: ^\d+$
Example:

"9007199254740993"

walletAddress
string
required
expiresAt
string<date-time> | null
required

Send JSON null for 30 days from preparation, or a future UTC timestamp ending in Z within 180 days. Include this field in every trade preparation.

Pattern: Z$
Example:

null

expectedTotalPriceInUsdt
string
required

Total asking price the buyer reviewed, in 18-decimal USDT base units. A price change returns HTTP 409.

Pattern: ^0*[1-9][0-9]*$

Response

Success

operation
enum<string>
required
Available options:
bid,
buy
tokenId
string
required
Pattern: ^\d+$
buyerWalletAddress
string
required

20-byte, 0x-prefixed wallet or contract address. Use lowercase or a valid checksum.

quote
object
required
typedData
object
required
payload
object
required