API reference

The Senddy API endpoints that the SDK calls, for teams integrating over HTTP.

The SDK calls these endpoints for you. Use them directly only if you're integrating from a language without a Senddy SDK, or debugging.

ChainBase URL
Basehttps://api.senddy.com
Robinhood Chainhttps://api-rh.senddy.com

Every request needs an API key in X-API-Key, or a session token in Authorization: Bearer sst_…. Event streams take ?session= instead. See Authentication.

Service#

MethodPathWhat it does
GET/healthLiveness
GET/infoChain, pool and which features this instance runs
GET/whoamiThe developer or session the credential belongs to

Sessions#

MethodPathWhat it does
POST/sessionMint a short-lived session token for a user. Server only, with your API key
POST/session/exchangeTurn a Privy access token into a session, for Privy apps registered with Senddy

Transactions#

Proofs are made on the user's device. These endpoints verify them in a secure enclave, sign an attestation, and submit the transaction for the user, so they never need gas.

MethodPathWhat it does
POST/sequence/deposit-shieldVerify and submit a deposit, in order
POST/sequence/spendVerify and submit a transfer or withdrawal
POST/sequence/spend9The same, for payments that combine many notes
POST/sequence/private-swapVerify and submit a private swap
GET/sequence/ticket/:ticket_idStatus of a submitted transaction
POST/attest/deposit-shield, /attest/spend, /attest/spend9, /attest/private-swapAttest only, without submitting
POST/relaySubmit an attested transaction

Swaps#

MethodPathWhat it does
POST/swap/quoteRoute, expected output, floor and fees for a private swap

Bridging#

MethodPathWhat it does
POST/bridge/hyperliquid/in-addressA deposit address for funds coming from Hyperliquid
POST/bridge/hyperliquid/out-addressA deposit address for a withdrawal to Hyperliquid
POST/bridge/solana/deposit-addressA deposit address for funds coming from Solana
GET/bridge/statusProgress of a bridge request

Data#

MethodPathWhat it does
GET/merkle/rootThe pool's current Merkle root
GET/merkle/treeMerkle data the client needs to prove
GET/events/streamServer-sent events for new pool activity
GET/balance/usdcPublic balance of an address, for deposit screens

Errors#

Errors return JSON with a machine-readable code. The ones to handle:

CodeMeaningWhat to do
SESSION_EXPIREDThe session token has expiredMint a new one. The SDK does this for you
ROUTE_UNAVAILABLENo swap route right nowAsk the user to try again
SWAPS_DISABLEDSwaps are off on this instanceHide swaps
429Rate limitedBack off and retry