latestOpenAPI 3.1.02026-08-108094177.6 KB

087dcf516ce2

Delegated Contract Mode

Create off-ramp request

Delegated Contract Mode will be deprecated soon; new partners should use Managed Custody Mode. Executes a crypto-to-fiat deposit. Always call /v1/deposit/quote first and pass the returned quoteId; UR validates urId, tokens, and amount against the original quote and rejects mismatches. requestId must be globally unique and reused on retries.

post/v1/deposit

Headers

X-Api-Signaturestring required

Partner's EIP-191 signature (0x-prefixed hex).

X-Api-Deadlinestring required

Unix seconds when the request signature expires (within 5 minutes).

X-Api-PublicKeystring

Partner's signer Ethereum address.

Request body

urIdinteger required

UR user ID.

inputTokenstring required

Input token symbol (USDC only).

outputTokenstring required

Output fiat token symbol.

amountstring required

Deposit amount in smallest units. Minimum 5 USDC.

requestIdstring required

Idempotency key; reuse on retry.

quoteIdstring required

Quote ID from /v1/deposit/quote. Strongly recommended: locks in the quoted fees and UR validates the request against the quote. When omitted, the deposit is processed without fee deduction (backward-compatible behavior).

chainIdstring

Source chain ID (CAIP-2). Defaults to Mantle when omitted.

userAddressstring

User's wallet address; required for cross-chain deposits.

Response

Response envelope. For the user API, retCode 0 means success; for the partner API, code 0 means success. Business rejections return HTTP 200 with a non-zero code.

codeinteger required

0 on success; non-zero indicates a business rejection.

messagestring required

Human-readable diagnostic; empty on success.

{"stackTrail":"components:schemas:DcEnvelope:properties:data","oasType":"schema","type":"unknown","description":"Business payload. Shape depends on the endpoint."}