Skip to main content
POST
Prepare an EOA Permit2 redemption from a saved quote
  1. Show the exact cards, recipient, address, courier and total to the wallet owner.
  2. Use the server’s quote for the fee. The preparation binds these details to your builder.
  3. Before submission, check the wallet’s USDT allowance for Permit2 at permitTypedData.domain.verifyingContract. It must cover permitTypedData.message.permitted.amount. If it is short, approve the required amount and wait for confirmation. The witness signature alone does not grant this allowance.
  4. Save the preparation ID and ask the wallet to sign the single Permit2 witness authorization.

Request

Builder key and wallet access token

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.

Authorization
string
header
required

Wallet access token: Bearer authentication for Redeem

Body

application/json
quoteId
string<uuid>
required
courierId
string
required
recipient
object
required
insurance
boolean
required

Response

Success

preparationId
string<uuid>
required
requestId
string
required

32 bytes encoded as 0x followed by 64 hexadecimal digits.

walletAddress
string
required

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

tokenIds
string[]
required

Each numeric token ID may occur once. For example, "1" and "01" identify the same token.

Required array length: 1 - 50 elements

Unsigned decimal integer smaller than 2^256, encoded as a string.

Pattern: ^\d{1,78}$
expiresAt
string<date-time>
required
address
object
required
recipient
object
required
courierName
string
required
fees
object
required
redemptionTypedData
object
required
permitTypedData
object
required