Skip to main content
High-yield wallet deposits work similarly to standard yield wallets: you sweep stablecoins into deposit addresses per chain, and Braid moves funds into the underlying liquidity pool. This guide shows how to execute a deposit and confirm it through the API. Deposits are always push-based. You do not call a “deposit” endpoint; instead, you:
  1. Create or fetch a high-yield wallet.
  2. Sweep funds on-chain to one of the depositAddresses[chain].address values.
  3. Use the deposits endpoints to confirm that Braid has detected and processed the deposit.

1. Get deposit addresses

First, create a wallet or fetch an existing wallet to obtain the per-chain deposit addresses.
curl -X GET "$BASE_URL/high-yield-wallets/$WALLET_ID" \
  -H "Authorization: Bearer $TOKEN"
Excerpt of 200 response
{
  "id": "92ff592c-a5d1-4053-a745-53f140cc2851",
  "depositAddresses": {
    "arbitrum": {
      "address": "0x21246509968c4d24611f414560971AEc2e3A079B"
    },
    "bsc": {
      "address": "0x21246509968c4d24611f414560971AEc2e3A079B"
    },
    "solana": {
      "address": "BskNLCLegEBsLySuTRmGJJoozyAUmeApSvd73b2hg7QM"
    }
  }
}
Choose the chain and token you want to deposit (for example, USDC on Arbitrum) and transfer from your custody to the corresponding address.

2. Send an on-chain transfer

From your wallet infrastructure, send a standard ERC-20 or SPL transfer to the deposit address. For example, for an Arbitrum USDC deposit:
to:   0x21246509968c4d24611f414560971AEc2e3A079B
token: USDC (Arbitrum)
amount: 10,000.00
Once the transaction is confirmed, Braid’s deposit detection and sweep jobs:
  • Detect the transfer.
  • Sweep funds into the high-yield liquidity pool.
  • Insert a high_yield_wallet_deposits row and update snapshots.

3. List deposits for a high-yield wallet

Use the deposits listing endpoint to confirm that a deposit has been seen and processed.
curl -X GET "$BASE_URL/high-yield-wallets/$WALLET_ID/deposits?page=1&pageSize=25" \
  -H "Authorization: Bearer $TOKEN"
200 response
{
  "deposits": [
    {
      "id": "8e39a6d3-050c-44c7-a840-4596f645e5d7",
      "highYieldWalletId": "92ff592c-a5d1-4053-a745-53f140cc2851",
      "depositAddress": "0x21246509968c4d24611f414560971AEc2e3A079B",
      "chain": "arbitrum",
      "token": "usdc",
      "amount": 10000.0,
      "status": "completed",
      "txHash": "0x987807fb2b3772872c1f7977c57965b250cc670c5661d87d1e86be7bd1accd64",
      "blockNumber": 66633890,
      "processedAt": "2025-11-01T05:55:45.123+00:00",
      "createdAt": "2025-11-01T05:52:32.748+00:00"
    }
  ],
  "page": 1,
  "pageSize": 25,
  "total": 1
}
  • status moves from created/processing to completed when the sweep is done.
  • processedAt indicates when the deposit was fully processed and snapshots updated.

4. Get a single deposit by id

curl -X GET "$BASE_URL/high-yield-wallets/deposits/$DEPOSIT_ID" \
  -H "Authorization: Bearer $TOKEN"
200 response
{
  "id": "8e39a6d3-050c-44c7-a840-4596f645e5d7",
  "highYieldWalletId": "92ff592c-a5d1-4053-a745-53f140cc2851",
  "depositAddress": "0x21246509968c4d24611f414560971AEc2e3A079B",
  "chain": "arbitrum",
  "token": "usdc",
  "amount": 10000.0,
  "status": "completed",
  "txHash": "0x987807fb2b3772872c1f7977c57965b250cc670c5661d87d1e86be7bd1accd64",
  "blockNumber": 66633890,
  "processedAt": "2025-11-01T05:55:45.123+00:00",
  "createdAt": "2025-11-01T05:52:32.748+00:00"
}
Use this endpoint when you have a deposit id from your systems and want to drill into the on-chain details.

5. Lookup by transaction hash

If you only have a transaction hash, use the lookup endpoint:
curl -X GET "$BASE_URL/high-yield-wallets/deposits/lookup?txHash=$TX_HASH" \
  -H "Authorization: Bearer $TOKEN"
This returns the same shape as GET /high-yield-wallets/deposits/{depositId}. It is useful when reconciling on-chain events from your explorer or indexer back to the Braid accounting layer.