Skip to main content
In a nutshell
The Blockradar Asset Recovery API allows you to retrieve assets that were accidentally sent to the correct address on the wrong blockchain. It supports native currency and custom assets (ERC-20 and compatible standards) across all supported networks.
Blockradar Asset Recovery

What is Asset Recovery?

Asset recovery enables you to retrieve funds that were sent to the correct wallet address but on the wrong blockchain network. This commonly happens when:
  • Users send assets on Ethereum but meant to send on Polygon
  • Assets are sent on BNB Smart Chain instead of Arbitrum
  • Any cross-chain address confusion where the same address exists on multiple EVM-compatible networks
Since EVM-compatible blockchains share the same address format, the same address can receive assets on multiple networks. Asset recovery allows you to access these funds programmatically.
For a detailed guide on asset recovery concepts and dashboard usage, read our blog post: How to Recover Assets Sent to the Wrong Blockchain

Prerequisites

Before using the Asset Recovery API, ensure you have:
1

API Key

Get your API key from the Blockradar Dashboard. Navigate to Settings → API Keys to generate one.
2

Wallet Created

Create a wallet via the Create Wallet API or dashboard. You’ll need the walletId for recovery operations.
3

Blockchain ID

Get the blockchainId for the network where assets are stuck. You can find this in the dashboard or via the Get Blockchains API.
4

Native Currency Balance

Ensure the sender address has enough native currency (ETH, BNB, MATIC, etc.) on the recovery blockchain to cover gas fees.

How It Works

The Asset Recovery API transfers assets from a sender address (where assets are stuck) to a recipient address on the same blockchain:

Native Currency Recovery

Recover native currency like ETH, BNB, MATIC, or AVAX sent to the wrong network.

Custom Asset Recovery

Recover ERC-20 and compatible assets by specifying the contract address.

Fee Estimation

Calculate network fees before execution to ensure sufficient balance.

Custom RPC Support

Recover assets on unsupported blockchains by providing your own RPC endpoint.

Supported Blockchains

Asset recovery is available on all blockchains supported by Blockradar, including EVM-compatible networks, Tron, and Solana. See Integrations for the complete list of supported networks and faucet links.
For EVM networks not directly supported, you can provide a custom RPC URL and optionally enable Layer 2 mode for rollup-based networks.
Start with testnets during development to avoid spending real funds.

Recover Assets

Initiate an asset recovery operation to transfer stuck assets to a recipient address.

Request Parameters

ParameterTypeRequiredDescription
senderAddressstringYesThe Blockradar address where assets are currently stuck.
recipientAddressstringYesThe destination address where recovered assets will be sent.
amountstringYesThe amount to recover. Use the full amount or a portion.
blockchainIdstring (UUID)YesThe blockchain UUID where recovery will occur. Get this from the Get Blockchains API.
tokenAddressstringNoContract address for custom asset recovery. Omit for native currency.
rpcUrlstringNoCustom RPC endpoint for unsupported blockchains.
isL2booleanNoSet to true if the RPC URL points to a Layer 2 network.

Native Currency Recovery

Recover native currency (ETH, BNB, MATIC, etc.) from the wrong network:
curl --request POST \
  --url https://api.blockradar.co/v1/wallets/{walletId}/salvage \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_API_KEY' \
  --data '{
    "senderAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "recipientAddress": "0xabcdef1234567890abcdef1234567890abcdef12",
    "amount": "0.5",
    "blockchainId": "b80d3d5e-16f1-4d99-be5e-6dfcd27f89aa"
  }'

Custom Asset Recovery

Recover ERC-20 or compatible assets by specifying the contract address:
curl --request POST \
  --url https://api.blockradar.co/v1/wallets/{walletId}/salvage \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_API_KEY' \
  --data '{
    "senderAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "recipientAddress": "0xabcdef1234567890abcdef1234567890abcdef12",
    "amount": "100",
    "blockchainId": "b80d3d5e-16f1-4d99-be5e-6dfcd27f89aa",
    "tokenAddress": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"
  }'

Custom RPC Recovery

Recover assets on unsupported blockchains by providing your own RPC endpoint:
curl --request POST \
  --url https://api.blockradar.co/v1/wallets/{walletId}/salvage \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_API_KEY' \
  --data '{
    "senderAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "recipientAddress": "0xabcdef1234567890abcdef1234567890abcdef12",
    "amount": "0.5",
    "blockchainId": "b80d3d5e-16f1-4d99-be5e-6dfcd27f89aa",
    "rpcUrl": "https://rpc.custom-network.io",
    "isL2": true
  }'

Success Response

{
  "message": "Salvage asset initiated successfully",
  "statusCode": 200
}

Network Fee Estimation

Before executing a recovery, estimate the network fees to ensure sufficient balance.

Fee Estimation Request

curl --request POST \
  --url https://api.blockradar.co/v1/wallets/{walletId}/salvage/network-fee \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_API_KEY' \
  --data '{
    "senderAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "recipientAddress": "0xabcdef1234567890abcdef1234567890abcdef12",
    "amount": "0.5",
    "blockchainId": "b80d3d5e-16f1-4d99-be5e-6dfcd27f89aa"
  }'

Fee Response Parameters

ParameterDescription
networkFeeEstimated gas fee in native currency units
networkFeeInUSDGas fee converted to USD
nativeBalanceCurrent native currency balance of sender
nativeBalanceInUSDNative balance converted to USD
Always estimate fees before executing recovery operations. The sender address must have sufficient native currency to cover gas fees on the recovery blockchain.

Webhooks

Subscribe to webhook events to receive real-time notifications about recovery operations.

Recovery Events

EventDescription
salvage.successTriggered when a recovery operation completes successfully.
salvage.failedTriggered when a recovery operation fails due to insufficient funds, network issues, or other errors.
salvage.cancelledTriggered when a recovery operation is cancelled before completion.

Webhook Payload

{
  "event": "salvage.success",
  "data": {
    "id": "txn_abc123",
    "type": "SALVAGE",
    "status": "SUCCESS",
    "amount": "0.5",
    "senderAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "recipientAddress": "0xabcdef1234567890abcdef1234567890abcdef12",
    "blockchain": "polygon-mainnet",
    "txHash": "0x9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba",
    "networkFee": "0.001",
    "createdAt": "2025-01-12T10:30:00Z"
  }
}
Configure webhooks in the Blockradar Dashboard under Settings → Webhooks. See the Webhooks documentation for setup instructions.

Common Use Cases

A user meant to send USDC on Ethereum but accidentally sent it on Polygon. Since the address is the same, the funds arrived on Polygon. Use asset recovery with the USDC contract address on Polygon to retrieve the funds.
A user bridged ETH to Arbitrum but sent it to a Blockradar address. The same address exists on Arbitrum due to EVM compatibility. Recover the ETH from Arbitrum using native currency recovery.
A user sent a custom ERC-20 asset on an L2 network like Optimism. Provide the asset contract address and use the recovery API to retrieve it.
Assets are stuck on a blockchain not directly supported by Blockradar. Provide your own RPC endpoint and set isL2: true if it’s a rollup to recover the funds.

Error Handling

{
  "error": "Insufficient native balance for gas",
  "code": "INSUFFICIENT_GAS",
  "details": {
    "required": "0.01",
    "available": "0.001",
    "currency": "MATIC"
  }
}
Solution: Fund the sender address with enough native currency to cover gas fees before retrying.
{
  "error": "Sender address not found in wallet",
  "code": "INVALID_SENDER"
}
Solution: Ensure the sender address belongs to your Blockradar wallet and is a valid child address.
{
  "error": "No balance found for specified asset",
  "code": "ASSET_NOT_FOUND",
  "details": {
    "tokenAddress": "0x...",
    "blockchain": "polygon-mainnet"
  }
}
Solution: Verify the contract address and blockchain. Use a block explorer to confirm the asset exists at the sender address.
{
  "error": "Failed to connect to custom RPC",
  "code": "RPC_ERROR"
}
Solution: Verify your RPC URL is correct and accessible. Ensure it supports the required JSON-RPC methods.

Best Practices

Always Estimate Fees First

Use the network fee endpoint before recovery to ensure sufficient gas balance and display accurate costs.

Verify Addresses

Double-check sender and recipient addresses using a block explorer before initiating recovery.

Use Webhooks

Configure webhooks to receive real-time status updates instead of polling the API.

Test on Testnet

Test your recovery integration on testnet before using it in production.

API Reference

EndpointDescription
SalvageInitiate asset recovery operation
Salvage Network FeeEstimate network fees for recovery

Happy recovering!