Coinbase Prime supports receiving funds from external blockchain addresses as well as from other Coinbase wallets (e.g., Prime, Exchange, Coinbase.com), provided the asset is supported on Prime.
Retrieving a deposit address
To deposit funds into Coinbase Prime, a deposit address is required. Request one by calling Get Wallet Deposit Instructions with a relevant Wallet ID. This endpoint will always return the same address for a given wallet—it does not generate a new address for each request. The supported network will also be included in the response. Please review the Wallets page before proceeding.
WalletsService walletsService = PrimeServiceFactory.createWalletsService(client);
GetWalletDepositInstructionsRequest request = new GetWalletDepositInstructionsRequest.Builder()
.portfolioId("PORTFOLIO_ID_HERE")
.walletId("WALLET_ID_HERE")
.depositType(DepositType.CRYPTO)
.build();
GetWalletDepositInstructionsResponse response = walletsService.getWalletDepositInstructions(request);
To learn more about this SDK, please visit the Prime Java SDK.
WalletsService walletsService = PrimeServiceFactory.createWalletsService(client);
GetWalletDepositInstructionsRequest request = new GetWalletDepositInstructionsRequest.Builder()
.portfolioId("PORTFOLIO_ID_HERE")
.walletId("WALLET_ID_HERE")
.depositType(DepositType.CRYPTO)
.build();
GetWalletDepositInstructionsResponse response = walletsService.getWalletDepositInstructions(request);
To learn more about this SDK, please visit the Prime Java SDK.
var walletsService = new WalletsService(client);
var request = new GetWalletDepositInstructionsRequest("PORTFOLIO_ID_HERE", "WALLET_ID_HERE")
{
DepositType = DepositType.CRYPTO,
};
var response = walletsService.GetWalletDepositInstructions(request);
To learn more about this SDK, please visit the Prime .NET SDK.
walletsService := users.NewWalletsService(client)
request := &users.GetWalletDepositInstructionsRequest{
PortfolioId: "PORTFOLIO_ID_HERE",
Id: "WALLET_ID_HERE",
DepositType: "CRYPTO",
}
response, err := walletsService.GetWalletDepositInstructions(context.Background(), request)
To learn more about this SDK, please visit the Prime Go SDK.
prime_client = PrimeClient(credentials)
request = GetWalletDepositInstructionsDepositInstructionsRequest(
portfolio_id="PORTFOLIO_ID_HERE",
wallet_id="WALLET_ID_HERE",
deposit_type="CRYPTO",
)
response = prime_client.get_wallet_deposit_instructions(request)
To learn more about this SDK, please visit the Prime Python SDK.
primectl get-wallet-deposit-instructions --help
const walletsService = new WalletsService(client);
walletsService.getWalletDepositInstructions({
portfolioId: 'PORTFOLIO_ID_HERE',
walletId: 'WALLET_ID_HERE',
}).then(async (response) => {
console.log('Deposit Instructions: ', response);
})
To learn more about this SDK, please visit the Prime TS SDK.
Tracking a deposit
Once a deposit is initiated (e.g., from an external wallet into a Prime wallet), its receipt can be tracked by polling the List Transactions endpoint. Filter by the DEPOSIT
transaction type to isolate deposit records. After a deposit is visible here, confirm its availability by checking current balances (using either portfolio- or wallet-level balance endpoints).
In general, digital asset deposits to Prime are credited once the relevant network confirmations have been met. For most assets, deposits become available for trading in a matter of seconds or minutes, but this timing may vary based on network conditions.
TransactionsService transactionsService = PrimeServiceFactory.createTransactionsService(client);
ListPortfolioTransactionsRequest request = new ListPortfolioTransactionsRequest.Builder()
.portfolioId("PORTFOLIO_ID_HERE")
.types("DEPOSIT")
.build();
ListPortfolioTransactionsResponse response = transactionsService.listPortfolioTransactions(request);
To learn more about this SDK, please visit the Prime Java SDK.
TransactionsService transactionsService = PrimeServiceFactory.createTransactionsService(client);
ListPortfolioTransactionsRequest request = new ListPortfolioTransactionsRequest.Builder()
.portfolioId("PORTFOLIO_ID_HERE")
.types("DEPOSIT")
.build();
ListPortfolioTransactionsResponse response = transactionsService.listPortfolioTransactions(request);
To learn more about this SDK, please visit the Prime Java SDK.
var transactionsService = new TransactionsService(client);
var request = new ListPortfolioTransactionsRequest("PORTFOLIO_ID_HERE", "DEPOSIT");
var response = transactionsService.ListPortfolioTransactions(request);
To learn more about this SDK, please visit the Prime .NET SDK.
transactionsService := transactions.NewTransactionsService(client)
request := &transactions.ListPortfolioTransactionsRequest{
PortfolioId: "PORTFOLIO_ID_HERE",
Types: "DEPOSIT"
}
response, err := transactionsService.ListPortfolioTransactions(context.Background(), request)
To learn more about this SDK, please visit the Prime Go SDK.
prime_client = PrimeClient(credentials)
request = ListPortfolioTransactionsRequest(
portfolio_id="PORTFOLIO_ID_HERE",
types="DEPOSIT",
)
response = prime_client.list_portfolio_transactions(request)
To learn more about this SDK, please visit the Prime Python SDK.
const transactionsService = new TransactionsService(client);
transactionsService.listPortfolioTransactions({
portfolioId: 'PORTFOLIO_ID_HERE'
types: 'DEPOSIT'
}).then(async (response) => {
console.log('Transactions: ', response);
})
To learn more about this SDK, please visit the Prime TS SDK.
primectl list-portfolio-transactions --help
Please note: All requests discussed above require proper authentication. For more information, visit REST API Authentication.