iCryptoNow

Introduction

The iCryptoNow API lets your platform accept stablecoin deposits and send payouts. It is a JSON over HTTPS API, and every request is signed with your API key.

How an integration works

  1. Create a deposit address for each player with POST /v1/addresses. Show it to the player. The same player always gets the same address.
  2. Receive webhooks. When the player pays, we send deposit.detected, then deposit.confirmed once it is final. Credit the player the full amount on deposit.confirmed. See Webhooks.
  3. Send payouts with POST /v1/payouts. Track them by webhook or by polling.

Environments: Sandbox and Production

There are two separate environments. Build and test against Sandbox first: it runs on public testnets with test tokens, so nothing has real value. Switch to Production when the go-live checklist passes.

Sandbox (testing)Production (live)
Base URLhttps://sandbox-api.icryptonow.comhttps://api.icryptonow.com
NetworksTRON Nile, BSC Testnet, Ethereum Sepolia, Arbitrum Sepolia, Base Sepolia, Polygon AmoyTRON, BSC, Ethereum, Arbitrum, Base, Polygon
MoneyTest tokens only, no real valueReal USDT and USDC
API keysSandbox keys, issued when you sign upProduction keys, issued at go-live
  • Each environment has its own API keys, secrets, webhook endpoint and IP allowlist. A Sandbox key never works in Production, and the other way round.
  • Requests and responses are identical in both. Chain ids stay the same (tron, bsc, …): in Sandbox they point to the matching testnet, so you only change the base URL and keys when you go live.
  • Sandbox uses test USDT and USDC issued on each testnet. Ask us on Telegram for test tokens or to fund your test deposit addresses, then send them to a deposit address to see the full flow: deposit.detected, deposit.confirmed, sweep and payouts.

The examples use these environment variables, so the same code runs in both environments:

ICN_BASE_URL=https://sandbox-api.icryptonow.com   # Production: https://api.icryptonow.com
ICN_KEY_ID=ak_...     # API key id of that environment
ICN_SECRET=...        # API secret (keep it server-side)

Requests are only accepted from the IP addresses registered for your key. See Authentication.

Who pays the fees

You do, never your players. A player who sends 1,000 USDT is credited 1,000 USDT on your platform. Your iCryptoNow balance receives 1,000 minus our fee: that is net in deposits and webhooks.

  • Deposits: credit the player amount (what they sent). Your balance grows by net = amount − fee.
  • Payouts: by default the fee is added on top (fee_mode: on_top): the player receives the full amount and your balance is charged amount + fee.
  • Fees and minimums per network are on the pricing page; GET /v1/quote returns the exact fee before money moves.

Amounts

All amounts are strings holding an integer in the token's smallest unit, never decimals. For example, with a 6-decimal token, "50000000" is 50 USDT. Decimals differ by network (USDT on BSC uses 18), so always use the decimals field that responses and webhooks include.

Networks and assets

Use these chain ids in requests. Assets are written as chain:TOKEN, for example tron:USDT. Which assets are enabled depends on your account.

NetworkChain idTokens
TRON tronUSDT
BSC bscUSDT
Ethereum ethUSDT, USDC
Arbitrum arbitrumUSDT, USDC
Base baseUSDT, USDC
Polygon polygonUSDT, USDC
Solana SoonsolanaUSDT, USDC

Request ids

Every response carries an X-Request-Id header. Include it when you contact support about a request.

Apply now