Skip to main content
The Passive Deposit/Withdrawal Service enables seamless asset movement between supported blockchain networks and NEAR Intents. It provides a lightweight mechanism for moving tokens in and out of the protocol.
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"
    }
  }
}