NFC Crypto Kit docs
v1.0.0
Live demo Get help
● Set up · Chains and tokens

Networks and swaps
which chains each app offers, and how to change them.

NFC Crypto covers seven EVM networks, Solana and Bitcoin. CryptoCard Wallet covers four EVM networks and Solana, and starts on test networks. All endpoints are set in the brand file of each app.

EVMSolanaBitcoinJupiterUniswap V2-style routers

01NFC Crypto networks

NetworkChain IDDefault explorerKey-free swap router
Ethereum1etherscan.ioUniswap V2 Router02
Base8453basescan.orgUniswap V2 Router02 (Base)
Arbitrum One42161arbiscan.ioUniswap V2 Router02 (Arbitrum)
Optimism10optimistic.etherscan.ioNone set; the app probes the common routers
Polygon137polygonscan.comQuickSwap V2
BNB Smart Chain56bscscan.comPancakeSwap V2
Avalanche43114snowtrace.ioTrader Joe V1
Solana—solscan.ioJupiter
Bitcoin—mempool.spaceNo swap source

Users can add their own EVM networks in the app under Settings → Networks.

Every value comes from lib/brand/brand_config.dart: evmChainIds (which networks, in which order), evmNetworks (RPC URLs, explorer, router and wrapped coin per network), solanaRpcUrl with solanaFallbackRpcUrls, and bitcoinApiUrl with bitcoinFallbackApiUrls (an Esplora-compatible API).

02Add, remove or reorder networks

  1. Remove a network: delete its chain ID from evmChainIds.
  2. Reorder: change the order of evmChainIds. The app shows them in that order.
  3. Add a network: add its chain ID to evmChainIds and a BrandEvmNetwork entry to evmNetworks with at least one HTTPS RPC URL and an explorer URL. A chain ID that the app's built-in chain catalog does not know is skipped, not invented (test/brand_config_test.dart).
  4. Use your own RPC provider: put its URL first in rpcUrls. The first URL is tried first; the others are fallbacks.
  5. Check: flutter test test/brand_config_test.dart.
Public endpoints are shared

The shipped URLs are free public endpoints. They are rate-limited and can be slow or down. Before you launch, use RPC URLs from a provider you have an account with. An RPC URL with an API key in it is compiled into the app, like the .env keys.

03Swaps

SourceNetworksNeeds
JupiterSolanaNothing
Uniswap V2-style router, on chainEVM networks with a router in evmNetworksNothing
0xEVMZEROX_API_KEY
1inchEVMONEINCH_API_KEY

Slippage: swapDefaultSlippagePct sets the starting value (empty keeps 0.5 %), and swapMaxSlippagePct sets the highest value a user may pick (empty = no ceiling). When a card is required for payments, every swap is confirmed with the card. For the optional operator fee, see Swap fee.

04CryptoCard Wallet networks

ID in networkIdsNetworkType
sepoliaEthereum SepoliaTest network (default)
solana-devnetSolana DevnetTest network (default for Solana)
ethereumEthereumMain network
baseBaseMain network
polygonPolygonMain network
bnbBNB ChainMain network
solanaSolanaMain network

CryptoCard sends and receives the native coin (ETH, POL, BNB, SOL). On Solana it shows SPL token balances (Token and Token-2022), read-only. It has no swaps. EVM addresses use the path m/44'/60'/0'/0/0 and Solana m/44'/501'/0'/0', so a phrase shows the same addresses as in MetaMask and Phantom.

Change networkIds and defaultNetworkId in lib/brand/brand_config.dart. Users can replace any RPC URL in the app's Settings (HTTPS only; the chain ID or Solana genesis hash is checked).

Starting on a test network is on purpose

New installs start on Sepolia so nothing of value moves until the owner switches. Set defaultNetworkId to ethereum (or another main network) for a production build if you want that.

05Networks and spending limits

Spender card limits are set per network, in that network's coin: ETH, POL, BNB, AVAX, SOL or BTC. Tokens are never covered by a Spender limit. See Spending limits.