Skip to main content
You fund your account by sending USDC to your Solana wallet address. Once it lands, you’re ready to trade — placing a parlay pulls your stake into the vault automatically, so there’s no separate deposit step.

Enable trading first

Before you can place a parlay or withdraw, your wallet must be delegated: you grant Totalis permission to sign transactions on your behalf inside a secure enclave. See Vaults & custody for how that works. Enabling trading is a one time interactive step — you approve a consent dialog in the app. It can’t be done from the REST API alone (POST /v1/wallet/enable-trading only reports status; it doesn’t grant the permission). Check the current state with GET /v1/wallet/delegation-status.

Send USDC to your wallet

1

Get your wallet address

GET /v1/wallet returns your Solana wallet address and current balances.
curl https://api.totalis.trade/v1/wallet \
  -H "X-API-Key: $TOTALIS_API_KEY"
2

Send native USDC on Solana

Transfer USDC to that address from any wallet or exchange that supports SPL tokens.
NetworkSolana mainnet
TokenUSDC (SPL)
MintEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
Send only native Solana USDC at the mint above. Bridged USDC, other tokens, or transfers on another chain won’t be credited and may be unrecoverable.
You don’t need SOL — network fees are sponsored, so your wallet only ever holds USDC.
3

Confirm it landed

Poll GET /v1/wallet until the balance reflects your transfer. You’re now ready to request quotes and place parlays.

How your balance is used

There’s no deposit call because the vault funds itself at trade time:
  • USDC you send lands in your wallet.
  • When you place a parlay, your stake moves from the wallet into the vault and locks — in one step.
  • Eligibility is checked against your combined wallet + vault free balance, so as long as the total covers your stake, the trade goes through.

Withdrawing

Use POST /v1/wallet/withdraw with a recipient and amount. If the amount exceeds your wallet balance, Totalis automatically draws from your vault’s free balance (settled winnings and unlocked collateral) to cover it — so one call reaches everything that isn’t locked in an open position.
curl -X POST https://api.totalis.trade/v1/wallet/withdraw \
  -H "X-API-Key: $TOTALIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "recipient": "<solana-address>", "amount_usdc": 50 }'
Withdrawing requires trading to be enabled — the same delegation as placing a parlay.