Deposit
Deposit Assets
Overview
BitGo enables you to deposit both crypto and fiat currencies. Your Go Account is the only wallet type that's multi asset and capable of holding fiat currencies. All other wallets are coin specific.
Depositing coins and tokens into your wallet requires you to get your BitGo wallet address and initiate the deposit from another wallet you control.
Depositing fiat currency into your Go Account requires either an ACH or wire transfer from your bank account to a BitGo bank account. Your bank may charge a wire-transfer fee. Contact your bank to learn more. Deposits can't occur from blacklisted countries.
Note
BitGo assesses risk for potential fraud on every ACH deposit. Deposits with a higher risk assessment may take longer to settle. BitGo may reject transfers if deemed too high risk.
Ticker Symbols
A ticker symbol, or asset ID, can have up to four variations on the BitGo platform, depending on where the asset is held. It's important to understand these distinctions so you use the correct asset ID for a given operation. To learn more, see Asset Ticker Symbols.
Prerequisites
Cookbook
Need just the steps? Expand the cookbook below to get started:
Deposit FiatOpen CookbookSteps
Connect your bank accounts by manually passing your account details to BitGo.
1. Get Deposit Details
Get bank account details for BitGo and a memo ID. All wire transfers must include a memo ID. This ID links your deposit to your account.
Endpoint: Get deposit info
export ACCESS_TOKEN="YOUR_ACCESS_TOKEN"
export GO_ACCOUNT_ID="GO_ACCOUNT_ID"
export CURRENCY="tfiatusd" # The BitGo-supported fiat currency you want to deposit
curl -X GET \
"https://app.bitgo-test.com/api/v2/bankaccounts/deposit/info?goAccountId=$GO_ACCOUNT_ID¤cy=$CURRENCY" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"
export type Fee {
amount: string
individualFees:
{
type: "static" | "variable",
amount: string
}[]
}
export type BankAccount {
id: string;
description?: string;
idHash: string;
currency: string;
accountNumber: string;
token: string;
name: string;
shortCountryCode: string;
enterpriseId: string;
trustOrg: string;
ownerName: string;
verificationState: string;
createdAt: string;
ownerAddressLine1: string;
ownerAddressLine2?: string;
ownerAddressCityLocality?: string;
ownerAddressStateProvince?: string;
ownerAddressPostalCode?: string;
ownerAddressCountryCode: string;
bankAddressLine1: string;
bankAddressLine2?: string;
bankAddressCityLocality?: string;
bankAddressStateProvince?: string;
bankAddressPostalCode?: string;
bankAddressCountryCode: string;
virtualDepositOnly: boolean;
type: string;
routingNumber?: string;
swiftCode?: string;
accountType: string;
fee: Fee
}
export type DepositInfo = {
memoId: string;
bankAccounts: BankAccount[];
};
Step Result
{
"memoId": "JVAIBEMHXT",
"bankAccounts": [
{
"id": "64ae84bdb25d190007958872b5104a7f",
"idHash": "cd303c82c4c74abf",
"currency": "tfiatusd",
"accountNumber": "5766400",
"token": "tusd",
"name": "Customers Bank ",
"shortCountryCode": "US",
"enterpriseId": "5bd795f1bf7435a503a0a647ec5d3b3d",
"trustOrg": "BitGo Trust",
"ownerName": "BitGo Trust Company, Inc",
"verificationState": "approved",
"createdAt": "2024-03-07T17:10:57.146Z",
"ownerAddressLine1": "6216 S Pinnacle Pl Ste #101",
"ownerAddressCityLocality": "Sioux Falls",
"ownerAddressStateProvince": "SD",
"ownerAddressPostalCode": "57108",
"ownerAddressCountryCode": "US",
"bankAddressLine1": "40 General Blvd Suite #200",
"bankAddressCityLocality": "Malvern",
"bankAddressStateProvince": "PA",
"bankAddressPostalCode": "19355",
"bankAddressCountryCode": "US",
"virtualDepositOnly": false,
"type": "wire",
"routingNumber": "031302971",
"accountType": "unknown",
"fee": {
"amount": "1600",
"individualFees": [
{
"type": "static",
"amount": "1600"
}
]
},
},
]
}
2. Initiate Wire Transfer
Depositing fiat currency from your bank account requires using your bank's app or API to initiate a wire transfer. Review your bank's documentation or contact them to learn more about sending a wire transfer.
Note
Ensure to include the memo ID in order to prevent delays in accrediting deposits to your Go Account.
Step Result
The balance of fiat currency in your Go Account updates with the deposited amount. The deposited balance is immediately available for trades.
Next
You can verify successful deposits with the Get Account Balance endpoint.
You can deposit coins and tokens using either the wallet ID or wallet address. However, depositing using the wallet ID is only possible between two BitGo wallets.
You can fetch all the addresses for a wallet using the List Addresses endpoint. Once you have the wallet address, initiate the deposit from another wallet you control.
If depositing from another one of your BitGo wallets, transaction flows differ depending on the sending-wallet type. For details, see Wallets Overview.
Next
You can use the hash ID to view the transaction on a blockchain explorer. You can also verify successful deposits with the Get Wallet by ID or Get Wallet by Address endpoints.