Skip to main content
This page covers how to integrate the Socket Deposit flow using the quote and status endpoints. The flow is:
  1. Fetch a quote with deposit mode enabled (enableDepositAddress=true).
  2. Read result.deposit from the quote response.
  3. Use either:
  • deposit.txData for direct programmatic execution, or
  • deposit.depositData to display transfer details for user-driven submission.
  1. Poll /status using deposit.requestHash until terminal status.
Currently, the deposit flow is supported on all EVM chains, Tempo, Solana, Tron and Stellar.
  • Tron supports direct deposits from USDT0 OFT chains to USDT on Tron. No other tokens or cross-chain swaps are supported at this time.
  • Stellar supports Base USDC deposits to and from USDC on Stellar. No other tokens or cross-chain swaps are supported at this time.
  • Tempo does not use a native gas token. The gas token is determined by the account’s fee token preferences, and Viem has helper functions to resolve it. If the swap input token is also selected as the fee token, the swap amount must leave enough balance to cover gas.

Integration Steps

Step 1: Get a Quote in Deposit Mode

Use the quote endpoint with enableDepositAddress=true and refundAddress=USER_ADDRESS. The userAddress is optional for the deposit flow. The depositDestinationMemo may be applicable for Stellar transactions.
result.deposit.requestHash is the identifier you should use with the status endpoint.

Step 2: Submit deposit.txData

Use deposit.txData.type to select the transaction submission method for the origin chain. Example below shows EVM submission with viem. In addition to executing with deposit.txData, you can also use deposit.depositData from the quote response to display the direct transfer details (recipient address, token, amount, chainId, memo if present) so users can submit the transfer manually via a QR code UI.
For Stellar deposits, when transferring USDC for the first time from a wallet, ensure the wallet has a USDC trustline before submitting the transaction.

Step 3: Poll Status with requestHash

After transaction submission, poll the status endpoint using the request hash returned in step 1.
For status code details, see the API Integration Guide.

Examples

Queries

Scripts

Edge Cases and Best Practices

  • Always persist requestHash immediately after quote generation.
  • Provide refundAddress explicitly so refunds can be directed deterministically.
  • Validate chain, token, destination receiver, and memo before showing the deposit instructions.
  • Treat the source transfer tx hash and requestHash as separate objects; use requestHash for Bungee status checks.
  • For Stellar as destination, ensure the receiver wallet has a USDC trustline before first USDC transfer.
  • Surface terminal failure states in UX (EXPIRED, CANCELLED, REFUNDED) and show retry guidance.

Debugging Checklist

  1. Store requestHash and server-req-id from quote/status calls.
  2. Confirm the submitted transfer matches depositData (address, token, amount, and memo if present).
  3. Poll /status with requestHash until terminal state.
  4. If unresolved, share requestHash and server-req-id with support.

Failure Cases API Behavior

Status codes: 5 = EXPIRED, 6 = CANCELLED, 7 = REFUNDED