GuidesRecipesAPI ReferenceChangelog
Guides

Receiving On-Chain Transfers

Generating deposit addresses and receiving on-chain transfers

The Cybrid Platform interacts with real-world blockchains for both Sandbox and Production banks when generating on-chain addresses and receiving deposits.

For Sandbox banks, on-chain wallet addresses are created on the blockchain's associated development network.

For Production banks, on-chain wallet addresses are created on the blockchain's associated mainnet network.

❗️

Solana token deposit addresses require additional setup

The instructions below do not apply to generating deposit addresses for tokens (e.g., USDC) on Solana. Solana requires "rent" to generate a token deposit address in both Production and Sandbox environments.

Production: Rent is automatically paid by the Cybrid Platform and invoiced at the end of the month. Rent is 0.01 SOL for each token deposit address generated.

Sandbox: You must fund rent yourself. See the Solana sandbox deposit address guide for instructions. If you do not follow these instructions, your deposit address will remain in the storing state indefinitely.

The first step is to create a trading account for the asset. Follow the guide for creating a trading account.

Once your trading account is created, create a deposit address using POST /api/deposit_addresses:

{
  "account_guid": "<trading account guid>"
}

See the full API reference for this endpoint.

The initial response:

{
  "created_at": "2025-07-31T11:27:28.628086Z",
  "updated_at": "2025-07-31T11:27:28.628086Z",
  "guid": "<deposit address guid>",
  "bank_guid": "<your bank guid>",
  "customer_guid": "<your customer's guid>",
  "account_guid": "<trading account guid>",
  "asset": "<the asset of the trading account>",
  "state": "storing",
  "labels": null
}

The initial state is storing. Poll using GET /api/deposit_addresses/{deposit_address_guid} until the state reaches created.

Once the state is created, the response includes the on-chain address in the address field:

{
  "created_at": "2025-07-31T11:27:28.628086Z",
  "updated_at": "2025-07-31T11:27:32.102665Z",
  "guid": "<deposit address guid>",
  "bank_guid": "<your bank guid>",
  "customer_guid": "<your customer's guid>",
  "account_guid": "<trading account guid>",
  "asset": "<the asset of the trading account>",
  "state": "created",
  "address": "<on-chain address>",
  "format": "standard",
  "labels": null
}

You now have an on-chain address that can receive deposits. Any deposits to this address are automatically reconciled to the underlying trading account and available for further transactions.