Skip to main content
The Passive Deposit/Withdrawal Service provides an API for moving assets between supported blockchain networks and NEAR Intents. Use it to deposit tokens into the protocol and withdraw them to external chains.
There is an SDK for integrating this service: Intents SDK on GitHub. This SDK is under active development and may introduce breaking changes.

How it works

1

Get supported assets

Query the service for the list of supported tokens and networks.
2

Get a deposit address

Request a deposit address for your target chain and NEAR account.
3

Transfer tokens

Send tokens to the deposit address. They will appear in your NEAR Intents account.
4

Monitor status

Check deposit and withdrawal status via the API.

JSON-RPC Endpoint

POST: https://bridge.chaindefuser.com/rpc

API Reference

supported_tokens

Returns a list of tokens supported by the service for each network.
chains
string[]
Optional chain filter (e.g., ["eth:1", "btc:mainnet"])
For each token:
  • defuse_asset_identifier - Unique asset ID (format: CHAIN_TYPE:CHAIN_ID:ADDRESS)
  • near_token_id - Token ID in the NEAR blockchain
  • decimals - Token precision
  • asset_name - Token name
  • min_deposit_amount - Minimum amount to trigger transfer
  • min_withdrawal_amount - Minimum amount for withdrawal
  • withdrawal_fee - Fee charged for withdrawals
Request
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "supported_tokens",
  "params": [
    {
      "chains": ["eth:8453"]
    }
  ]
}
Response
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "tokens": [
      {
        "defuse_asset_identifier": "eth:8453:0x123",
        "near_token_id": "...",
        "decimals": 18,
        "asset_name": "PEPE",
        "min_deposit_amount": "100000",
        "min_withdrawal_amount": "10000",
        "withdrawal_fee": "1000"
      }
    ]
  }
}

deposit_address

Returns the address for depositing supported tokens or native currency.
account_id
string
required
Your NEAR Intents account (e.g., user.near)
chain
string
required
Network type and chain ID (e.g., eth:42161 for Arbitrum, btc:mainnet for Bitcoin)
Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "deposit_address",
  "params": [
    {
      "account_id": "user.near",
      "chain": "eth:42161"
    }
  ]
}
Response
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "address": "0x...",
    "chain": "eth:42161"
  }
}

recent_deposits

Returns information on recent deposits for an account.
account_id
string
required
Your NEAR Intents account
chain
string
required
Network type and chain ID
For each deposit:
  • tx_hash - Transaction hash (EVM networks only)
  • chain - Network type and chain ID
  • defuse_asset_identifier - Token identifier
  • decimals - Token decimals
  • amount - Asset amount
  • account_id - NEAR Intents account
  • address - Deposit address
  • status - COMPLETED, PENDING, or FAILED
Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "recent_deposits",
  "params": [
    {
      "account_id": "user.near",
      "chain": "eth:42161"
    }
  ]
}
Response
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "deposits": [
      {
        "tx_hash": "0x...",
        "chain": "eth:42161",
        "defuse_asset_identifier": "eth:42161:0x123",
        "decimals": 18,
        "amount": "10000000000",
        "account_id": "user.near",
        "address": "0x123",
        "status": "COMPLETED"
      }
    ]
  }
}

withdrawal_status

Returns the status of a withdrawal.
withdrawal_hash
string
required
Hash of the NEAR transaction where ft_burn event occurred
  • status - COMPLETED, PENDING, FAILED, NOT_FOUND, AWAITING, REJECTED, RETURNING, or RETURNED
  • data.tx_hash - Burn transaction hash on NEAR
  • data.transfer_tx_hash - Transfer transaction hash on destination chain
  • data.chain - Network type and chain ID
  • data.defuse_asset_identifier - Token identifier
  • data.decimals - Token decimals
  • data.amount - Asset amount
  • data.account_id - User account
  • data.address - Withdrawal address
Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "withdrawal_status",
  "params": [
    {
      "withdrawal_hash": "8yFNEk7GmRcM3NMJihwCKXt8ZANLpL2koVFWWH1MEEj"
    }
  ]
}
Response
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "status": "COMPLETED",
    "data": {
      "tx_hash": "8yFNEk7GmRcM3NMJihwCKXt8ZANLpL2koVFWWH1MEEj",
      "transfer_tx_hash": "0x...",
      "chain": "eth:42161",
      "defuse_asset_identifier": "eth:42161:0x123",
      "decimals": 18,
      "amount": "10000000000",
      "account_id": "user.near",
      "address": "0x123"
    }
  }
}

notify_deposit

Optional method to notify the service about your deposit for faster processing.
deposit_address
string
required
Address you received from the API
tx_hash
string
required
Hash of your deposit transaction
Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "notify_deposit",
  "params": [
    {
      "deposit_address": "0x...",
      "tx_hash": "0x..."
    }
  ]
}

withdrawal_estimate

Estimate fees for a withdrawal transaction.
chain
string
required
Blockchain network (e.g., eth:1)
token
string
required
Token identifier (e.g., eth.omft.near)
address
string
required
Recipient address
  • tokenAddress - Token contract address
  • userAddress - User’s address
  • withdrawalFee - Estimated fee
  • withdrawalFeeDecimals - Fee decimal precision
  • token - Token information
Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "withdrawal_estimate",
  "params": [
    {
      "chain": "eth:1",
      "token": "eth.omft.near",
      "address": "0x456def..."
    }
  ]
}
Response
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "tokenAddress": "0x123abc...",
    "userAddress": "0x456def...",
    "withdrawalFee": "12500000000000000",
    "withdrawalFeeDecimals": 18,
    "token": {
      "defuse_asset_identifier": "0x123abc...",
      "near_token_id": "eth.omft.near",
      "decimals": 18,
      "asset_name": "ETH",
      "min_deposit_amount": "0.001"
    }
  }
}