Skip to main content
Transfers create durable local activity records, reserve available local balance, and submit to BlockOps only after local state commits.

Preview a withdrawal

Use POST /v1/wallets/{walletId}/withdrawal/preview?environment=sandbox.
{
  "network_code": "ethereum_sepolia",
  "asset": "USDC",
  "amount": "1000000",
  "to_address": "0xabc..."
}
The response includes the source wallet, network, asset, amount in base units, destination address, available balance fields, and provider.

Create a transfer

Use POST /v1/transfers?environment=sandbox.
{
  "wallet_id": "00000000-0000-0000-0000-000000000000",
  "network_code": "ethereum_sepolia",
  "asset": "USDC",
  "amount": "1000000",
  "to_address": "0xabc..."
}
The response returns activity_id and the current transfer status.

Read transfer status

Use GET /v1/transfers/{activityId}?environment=sandbox to read transfer detail and approval state. Use POST /v1/transfers/{activityId}/refresh?environment=sandbox to refresh provider status for a transfer activity.

Approve or cancel a transfer

Use:
EndpointPurpose
POST /v1/transfers/{activityId}/approveApprove a queued transfer or provider-pending BlockOps withdrawal.
POST /v1/transfers/{activityId}/cancelCancel a queued transfer or provider-pending BlockOps withdrawal.
Both endpoints accept the environment query parameter.

Transfer intents

Transfer intents are a read-only beta surface over wallet-backed transfer flows.
EndpointPurpose
GET /v1/transfer-intentsList persisted transfer intents.
GET /v1/transfer-intents/{transferIntentId}Get normalized intent detail and the underlying wallet transfer detail when available.

Wallet transaction history

Use:
EndpointPurpose
GET /v1/wallets/{walletId}/withdrawalsList withdrawal activities for a wallet.
GET /v1/wallets/{walletId}/transactionsList deposit and withdrawal transactions for a wallet.
GET /v1/transactions/{transactionId}Get a deposit or withdrawal transaction detail.