Chains and assets
Chains#
chain_id |
Chain | Native asset | Confirmations | Status |
|---|---|---|---|---|
56 |
BNB Chain | BNB | 15 | Live |
728126428 |
TRON | TRX | 19 | Live |
1 |
Ethereum | ETH | 3 | Supported |
8453 |
Base | ETH | 10 | Supported |
42161 |
Arbitrum One | ETH | 20 | Supported |
137 |
Polygon PoS | POL | 32 | Supported |
- Live: the chain is read continuously; alerts go out within seconds.
- Supported: the chain is known to the service (addresses and rules are accepted); reading is enabled on demand.
- Confirmations: number of blocks waited for before the "confirmed" alert. A rule that sends an immediate alert warns first as soon as the block is included, then at confirmation; if a reorganization removes the block, a "cancelled" alert follows.
The list of chains actually being read, with the last processed block, is returned by GET /v1/health and shown on the status page. An unknown chain_id answers 422 validation_failed (details.field = "chain_id").
Addresses#
| Chain | Accepted input | Returned form |
|---|---|---|
| EVM (BNB Chain, Ethereum, Base, Arbitrum, Polygon) | 0x + 40 hex characters. In mixed case, the EIP-55 checksum must be right. |
address lowercase, display_address EIP-55. |
| TRON | T… (base58 with checksum) or hex 0x…. |
address lowercase hex, display_address base58 T…. |
{
"chain_id": 56,
"address": "0x8894e0a0c962cb723c1976a4421c95949be2d4e3",
"display_address": "0x8894E0a0c962CB723c1976a4421c95949bE2D4E3"
}Store and compare address; display display_address.
Rule assets#
The asset field of a rule accepts:
| Value | Meaning | Threshold unit |
|---|---|---|
native (default) |
The chain's native coin (BNB, ETH, POL, TRX), direct and internal transfers. | Native units: "1.5" = 1.5 BNB. |
| a token address | One specific token, identified by its contract address. | Token units: "50000" = 50,000 USDT. |
any |
Any token and the native coin. | Raw units (smallest unit). |
A token is accepted if it is in the reference list below or has already been observed by the service (its decimals are then known). Otherwise: 422 validation_failed on asset; use any with a raw threshold, or write to support@aicscan.io. GET /v1/tokens/{chain_id}/{address} tells you whether a token is known.
Reference tokens#
| Chain | Token | Contract | Decimals |
|---|---|---|---|
| BNB Chain | USDT | 0x55d398326f99059ff775485246999027b3197955 |
18 |
| BNB Chain | USDC | 0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d |
18 |
| Ethereum | USDT | 0xdac17f958d2ee523a2206206994597c13d831ec7 |
6 |
| Ethereum | USDC | 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 |
6 |
| Base | USDC | 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 |
6 |
| Arbitrum One | USDC | 0xaf88d065e77c8cc2239327c5edb3a432268e5831 |
6 |
| Polygon PoS | USDC | 0x3c499c542cef5e3811e1192ce70d8cc03d5c3359 |
6 |
| TRON | USDT (TRC-20) | TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t |
6 |
Amounts#
In responses, amounts are raw integers in strings ("250000000000000000000000"), in the token's smallest unit: divide by 10^decimals to get the readable amount. Use a big-number type (BigInt in JavaScript, int or Decimal in Python): these values exceed floating-point precision.
const raw = BigInt(event.amount); // 250000000000000000000000n
const units = raw / 10n ** 18n; // 250000n (USDT on BNB Chain: 18 decimals)