> ## Documentation Index
> Fetch the complete documentation index at: https://docs.totalis.trade/llms.txt
> Use this file to discover all available pages before exploring further.

# Funding your wallet

> Fund your Totalis account by sending USDC to your Solana wallet, enable trading, and withdraw.

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](/guides/vault-architecture) 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`](/api-reference/funds/delegation-status).

## Send USDC to your wallet

<Steps>
  <Step title="Get your wallet address">
    [`GET /v1/wallet`](/api-reference/user/get-wallet) returns your Solana wallet `address` and current balances.

    ```bash theme={null}
    curl https://api.totalis.trade/v1/wallet \
      -H "X-API-Key: $TOTALIS_API_KEY"
    ```
  </Step>

  <Step title="Send native USDC on Solana">
    Transfer USDC to that address from any wallet or exchange that supports SPL tokens.

    |             |                                                |
    | ----------- | ---------------------------------------------- |
    | **Network** | Solana mainnet                                 |
    | **Token**   | USDC (SPL)                                     |
    | **Mint**    | `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` |

    <Warning>
      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.
    </Warning>

    You don't need SOL — network fees are sponsored, so your wallet only ever holds USDC.
  </Step>

  <Step title="Confirm it landed">
    Poll [`GET /v1/wallet`](/api-reference/user/get-wallet) until the balance reflects your transfer. You're now ready to request quotes and place parlays.
  </Step>
</Steps>

## 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`](/api-reference/funds/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.

```bash theme={null}
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.
