Transactions
insufficient funds for gas * price + value
insufficient funds for gas * price + value
cast balance --ether YOUR_ADDRESS --rpc-url https://rpc.bohr.life. On testnet, claim tBOT from the faucet. Make sure you’re sending from the account you funded.nonce too low
nonce too low
cast nonce YOUR_ADDRESS --rpc-url https://rpc.bohr.life.replacement transaction underpriced
replacement transaction underpriced
gasPrice too low, or transaction underpriced: effective gas tip ... minimum needed 20000000000
gasPrice too low, or transaction underpriced: effective gas tip ... minimum needed 20000000000
rlp: expected input list for []kzg4844.Blob
rlp: expected input list for []kzg4844.Blob
--eip4844 to cast send --blob. See Blob API.invalid opcode
invalid opcode
cancun and redeploy. See Supported EIPs.Transaction confirmed, but my app still shows the old value
Transaction confirmed, but my app still shows the old value
finalized block. See Consensus and finality.Contracts and reads
The contract function "..." returned no data ("0x")
The contract function "..." returned no data ("0x")
Chain "..." does not support contract "multicall3"
Chain "..." does not support contract "multicall3"
multicall in viem, and your chain definition has no Multicall3 address.Fix: Add contracts.multicall3.address set to 0x47FA21f684bBAD707A53a0f9BE59F1422F46C265 to your defineChain call. The standard 0xcA11...CA11 address is not deployed on testnet. See Build your first dApp.Token amounts are off by a factor of a trillion
Token amounts are off by a factor of a trillion
decimals() from the token contract instead of hard-coding it. Use the official address from Contract addresses, because other tokens named “USDT” exist on testnet.Contract verification fails on BOTScan
Contract verification fails on BOTScan
--verifier blockscout and --verifier-url https://scan.bohr.life/api/ (with the trailing slash), and the same compiler version, optimizer settings and EVM version you deployed with. See the quickstart.RPC
eth_getLogs times out or returns a gateway error
eth_getLogs times out or returns a gateway error
eth_getLogs as disabled on the public RPCs. Bounded ranges answered in our tests, but large ranges time out.Fix: Query in chunks of a few thousand blocks, or read logs from the Explorer API. See Known limitations.notifications not supported
notifications not supported
eth_subscribe, or your library tried to open a subscription. BOT Chain has no public WebSocket endpoint.Fix: Poll over HTTP. In viem, use an http transport and the watch actions, which poll automatically.filter not found
filter not found
eth_newFilter or eth_newBlockFilter. The public RPC seems to spread requests across several nodes, so the next request often reaches a node that doesn’t know the filter.Fix: Don’t use filters. Track the last block you processed and poll for new blocks.the method debug_traceTransaction does not exist/is not available
the method debug_traceTransaction does not exist/is not available
debug or trace namespaces (error code -32601).Fix: Use BOTScan to inspect a transaction, or run your own node with these APIs enabled. See BOT Chain’s node types page.Chain ID mismatch, or the wallet calls testnet "Datagram"
Chain ID mismatch, or the wallet calls testnet "Datagram"
Wallets and faucet
Faucet tokens don't arrive
Faucet tokens don't arrive
My balance shows BOT on testnet
My balance shows BOT on testnet
BOT.Fix: Nothing to fix. It’s tBOT, with no real-world value. These docs call it tBOT to keep the networks apart.Templates
Each template’s errors are listed next to the steps that cause them:- Setup (
forge: command not found, npm install failures, faucet waits): Prerequisites. - Running any template (no tBOT for gas,
PRIVATE_KEY is not set, RPC 503, verification right after deploy, a stale contract in the web app): Use a template. - Token (override errors, new functions missing from the web app, verify after a constructor change): Customize the Token template.
- NFT (
WrongPayment, artwork JSON decode errors,supportsInterfaceor_updatecompiler errors): Customize the NFT template. - DEX integration (
EXPIRED,INSUFFICIENT_OUTPUT_AMOUNT, missing pools, empty quotes): Customize the DEX integration template. - Gasless app (relayer refusals, expired signatures, rate limits, a low relayer balance): Customize the Gasless app template.