Coinbase Prime supports onchain transfers of digital assets between Prime portfolios under the same entity. This functionality is useful for moving funds from a trading balance to a vault wallet or consolidating assets across multiple portfolios. For those unfamiliar with portfolios or entities, review the Account Structure page first.

Creating a transfer

Instead of using a public address, the Create Transfer endpoint operates with Wallet IDs. For a refresher on Wallet IDs, consult the Wallets page.

When creating a transfer, specify the source wallet ID (and its associated portfolio) as well as the destination wallet ID. To perform a transfer between two portfolios, an entity or organization-level API key is necessary to keep all wallets in scope.

Transfers are subject to Prime’s consensus approval process, which can be configured in the Prime UI. Below is an example showing how to create a transfer.

TransactionsService transactionsService = PrimeServiceFactory.createTransactionsService(client);

CreateTransferRequest request = new CreateTransferRequest.Builder()
    .portfolioId("PORTFOLIO_ID_HERE")
    .walletId("WALLET_ID_HERE")
    .amount("0.001")
    .destination("DESTINATION_WALLET_UUID")
    .idempotencyKey(UUID.randomUUID().toString())
    .currencySymbol("ETH")
    .build();

CreateTransferResponse response = transactionsService.createTransfer(request);

To learn more about this SDK, please visit the Prime Java SDK.

Tracking Transfer Status

Use the Transaction ID returned by the Create Transfer endpoint to track the transaction’s status:

Please note: All requests discussed above require proper authentication. For more information, visit REST API Authentication.