Introducing Starknet Network:   OffRamp and OnRamp USDC are now supported for Starknet network.  View changelog for details →.
Sphere Paysphere

Cross Chain Transfer Protocol (Off-Ramp)

Cross Chain Transfer Protocol is a protocol that allows for the transfer of digital assets across different blockchain networks.

SpherePay leverages Circle's Cross-Chain Transfer Protocol (CCTP) to facilitate asset bridging from chains such as SEI and Noble into USDC, enabling redemption into fiat through straightforward REST APIs. This guide covers SpherePay's endpoints for submitting transaction hashes and walks you through the integration from transfer initiation to calling our API. For detailed CCTP specifics, refer to Circle's documentation.

What is CCTP?

The Cross-Chain Transfer Protocol (CCTP) is our standardized off-chain mechanism that:

  • Bridges stablecoins USDC between supported networks (e.g. SEI, Noble).
  • Verifies the on-chain transfer via a proof (transaction hash).
  • Redeems the bridged assets into fiat rails through SpherePay’s backend.

By separating the bridging (on-chain) step from the redemption (off-chain) step, CCTP ensures maximum security, auditability, and flexibility for cross-chain transfers.

Supported Chains & Assets

  • Source Chains: SEI, Noble
  • Bridged Assets: USDC
  • Fiat Rails: As specified in our Transfer Acceptance Guide (must match your API request)

End-to-End Off-Ramp Flow

  1. Initiate the Transfer
    Call the Transfer API to register your intent and specify the destination rail and currency.
POST https://api.spherepay.co/v1/transfer
POST https://api.sandbox.spherepay.co/v1/transfer
{
  "amount": "100.00",
  "customer": "customer_abc123",
  "source": {
    "id": "wallet_xyz789",
    "currency": "usdc",
    "network": "sei"
  },
  "destination": {
    "id": "bankAccount_123456",
    "currency": "usd",
    "network": "achPush"
  }
}

Information

Make sure source.network is sei or noble and destination.network matches one of the supported rails in our acceptance list.

  1. Bridge the Funds On the SEI or Noble network, use CCTP to send the exact amount of USDC to the on-chain address provided in the Transfer response on the correct destination chain.

    • Important: The token type, network, and amount must match your initial API request exactly.
    • If this on-chain transfer fails or is delayed, the subsequent CCTP step will not work.
    • Ensure you send the funds to the correct destination domain and address via CCTP.
  2. Submit CCTP Transaction Once the on-chain transfer confirms, call the CCTP endpoint to complete the off-ramp.

POST https://api.spherepay.co/v1/transfer/cctp
POST https://api.sandbox.spherepay.co/v1/transfer/cctp
{
  "transferId": "transfer_def456",
  "proofOfBridge": {
    "transactionHash": "0xabc123...",
    "network": "sei"
  }
}
  • transferId comes from your initial /transfer response.
  • proofOfBridge.transactionHash is the on-chain transaction that moved funds on SEI/Noble.

Warning

You must wait for the on-chain bridge transaction (Step 2) to succeed before calling /transfer/cctp; otherwise the redemption will fail.


Error Handling & Best Practices

  • Polling Status: Use the Retrieve Transfer endpoint to track status until it moves to bridged before calling CCTP.
  • Idempotency: If you retry the CCTP call, use the same transferId—SpherePay will ensure no double-spend.
  • Webhook Notifications: Subscribe to transfer webhooks to get real-time updates on bridging and redemption.
  • Network Fees: Account for on-chain gas fees on SEI/Noble when instructing users or building UI prompts.

By following these steps, you’ll enable a reliable, cross-chain off-ramp flow—bridging stablecoins from SEI and Noble into fiat rails—under your own brand and control. If you have questions, contact your SpherePay sales representative or visit our developer docs for more details.