Deposit crypto
Create a deposit wallet and fund your Blacksheep balance on-chain from your own application.
To deposit crypto, create a Blacksheep deposit wallet for the chain you'll send from. Its address then appears in your wallet list, and any supported token sent to it is credited to your balance.
Prerequisites
- A verified account
- Stablecoins on a supported chain (see Supported tokens)
1. Create the deposit wallet
POST /account.external.web3.create
Content-Type: application/json
{ "type": "evm" }type is the address family: evm for Ethereum-compatible chains, tvm for Tron. One evm wallet receives on every supported EVM chain.
{
"data": {
"status": "PENDING",
"wallet": null
}
}Wallet creation is asynchronous. The call is idempotent: once the wallet exists, calling it again returns "status": "READY" with the wallet instead of creating another.
2. Wait for the wallet to appear
Poll account.external.web3.getAll until a wallet with metadata.connector.id of blacksheep_custody and the matching metadata.type is listed. This usually takes a few seconds.
POST /account.external.web3.getAll{
"data": [
{
"id": "4f0c2a8e-8d1b-4c55-9e0e-3b7f6a1d2c90",
"created_at": "2026-09-24T04:15:39.841Z",
"type": "WEB3",
"is_active": true,
"metadata": {
"is_hidden": false,
"address": "0xabc...123",
"type": "evm",
"connector": { "id": "blacksheep_custody" },
"has_transactions": false,
"is_custodial": false
}
}
]
}Wallets you've added yourself have no connector, so connector.id is how you tell the deposit wallet apart. metadata.address is the address to send to.
3. Send funds
Send a supported token from your own wallet or application to metadata.address, on a chain that matches the wallet's metadata.type.
Supported tokens
| Token | Chains | Wallet type |
|---|---|---|
| USDC | ethereum, base, arbitrum, polygon, avalanche | evm |
| USDT | ethereum | evm |
| USDT | tron | tvm |
4. Track the deposit
Once the transfer is seen on-chain, Blacksheep creates a deposit transaction in PENDING status and credits your balance when it completes. Track it with:
- A
transaction.createdwebhook for the new deposit, thentransaction.updatedreporting a terminalstatus - Polling
transaction.getManywithtype: "deposit"
The transaction's external_reference is the on-chain transaction hash, with external_reference_type of CRYPTO_ETHEREUM (EVM chains) or CRYPTO_TRON.
Pitfalls
- Unsupported tokens and chains are not credited. Only the tokens and chains in the table above are credited. Anything else sent to the address, including native gas tokens, is not.
- Match the address family. An
evmaddress only receives on EVM chains, and atvmaddress only on Tron. Create one wallet per family you deposit on. - Deposit only. This wallet is for funding your balance. To send funds out, withdraw to a wallet you've added yourself. See Withdraw to a wallet.