Skip to main content

Overview

dKit uses a standardized notation system to identify assets across different blockchains. This ensures consistency and clarity when specifying assets for swaps.

Asset Format

Assets are identified using one of two formats:

Native Assets

Native blockchain assets (gas tokens) use a simple format with the chain identifier and symbol. Examples:
  • ETH.ETH - Native Ethereum
  • BTC.BTC - Native Bitcoin
  • SOL.SOL - Native Solana
  • AVAX.AVAX - Native Avalanche
  • THOR.RUNE - THORChain’s native RUNE

Tokens

Non-native tokens include the contract address to ensure uniqueness. Examples:
  • ETH.USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48 - USDC on Ethereum
  • ARB.USDC-0XAF88D065E77C8CC2239327C5EDB3A432268E5831 - USDC on Arbitrum
  • ETH.WBTC-0X2260FAC5E5542A773AA44FBCFEDF7C193BC2C599 - Wrapped Bitcoin on Ethereum
  • SOL.USDC-EPJFWDD5AUFQSSQEM2QN1XZYBAPC8G4WEGGKZWYTDT1V - USDC on Solana

Chain Identifiers

Common chain identifiers used in the API:

Special Cases

Synthetic Assets

THORChain and MayaChain support synthetic assets that represent assets from other chains:
  • THOR.BTC - Synthetic Bitcoin on THORChain
  • THOR.ETH - Synthetic Ethereum on THORChain
  • MAYA.BTC - Synthetic Bitcoin on MayaChain

Layer 2 Networks

Layer 2 networks have their own chain identifiers:
  • ARB.ETH - Native ETH on Arbitrum
  • BASE.ETH - Native ETH on Base
  • OP.ETH - Native ETH on Optimism

Wrapped Assets

Wrapped assets maintain the original asset symbol but include the wrapper contract address:
  • ETH.WBTC-0X2260FAC5E5542A773AA44FBCFEDF7C193BC2C599 - Wrapped Bitcoin
  • ETH.WETH-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2 - Wrapped Ethereum

Address Formats

Different chains use different address formats:

Asset Discovery

Finding Available Assets

Use the /tokens endpoint to discover available assets:

Checking Asset Connectivity

Use the /connected-assets endpoint to find what assets can be swapped:

Best Practices

1. Case Sensitivity

Chain and symbol identifiers are case-sensitive. Always use uppercase:

2. Address Validation

Always validate addresses before making requests:

3. Token Disambiguation

Always use the full identifier with address for tokens to avoid ambiguity:

4. Chain-Asset Compatibility

Ensure the asset belongs to the specified chain:

Common Patterns

Cross-Chain Swaps

Same-Chain Swaps

Using Synthetic Assets