Supported networks
The chain and token tk24 accepts, and how a top-up is credited.
tk24 accepts USDT on Ethereum, credited by direct transfer to the collection wallet.
| Network | Chain ID | Decimals | Token | Method |
|---|---|---|---|---|
| Ethereum | 1 | 6 | USDT | Direct transfer |
No other chain and no other token. USDC, native ETH, and transfers on Base, Arbitrum, BNB Chain, Solana, Polygon or Optimism are not credited — a transfer of one of those to the collection wallet needs manual recovery.
Direct transfer
Send USDT to the collection wallet from an Ethereum address you control. An indexer polls the chain and credits the sending wallet, typically within about a minute. No signature or API call is required.
Read the destination address from the gateway rather than hardcoding it:
curl https://api.tk24.ai/v1/config
# { "gatewayWalletAddress": "0x...", "minTopupUsd": 1, "networkMode": "mainnet",
# "chainIds": [1], "tokens": ["USDT"], "multipliers": { "USDT": 0.997 } }chainIds, tokens and multipliers are the source of truth for what a deployment
credits and at what rate.
Send only from a wallet you control — the credit goes to the sending address, and transfers out of an exchange account cannot be credited to you.
Claiming a missed transfer
If a transfer is not credited, submit its hash. The gateway re-verifies the receipt on-chain before crediting, and the same hash can never be credited twice.
curl -X POST https://api.tk24.ai/v1/topup/direct \
-H "Content-Type: application/json" \
-d '{ "txHash": "0x...", "network": "1" }'| Field | Type | Description |
|---|---|---|
txHash | string | The transfer's transaction hash |
network | string | Optional. Chain ID or alias (ethereum). Omit to scan every supported chain |
walletAddress | string | Optional. Expected sender, rejected on mismatch |
/v1/topup/inflow and /v1/topup/appeal are aliases for the same handler.
Conversion rates
| Token | Credit |
|---|---|
| USDT | 1 USDT = $0.997 |
Testnets
Staging (https://agent-router.gaib.cloud) runs the testnet equivalent — Ethereum
Sepolia (11155111). Production rejects testnet chains outright. Check which mode a
deployment is in with networkMode from GET /v1/config.
SIWE and chain IDs
The chainId in a SIWE message is not checked — the gateway
verifies the signature, the address, and that issuedAt is under an hour old, nothing
else. Any chain ID your wallet is on will authenticate. The examples use 1 purely as a
convention.