For developers / Start here

Network parameters

Live

The constants, each read out of the code that enforces it. If you only need the six values a wallet asks for, they are on the connect page instead.

Identity

ParameterValue
Chain namePickle Chain TestnetPickle Chain in prose; the longer form is what wallets display
Chain ID782700x131be - a compile-time constant, enforced on every transaction
Mainnet chain ID782710x131bf - reserved, not live. Anything asking you to send real funds to a Pickle address today is a scam
Gas tokenETHpermanently. PKL is never required to transact
Currency decimals18

The chain ID is a compile-time constant and is checked on every transaction: an envelope signed for another chain is rejected at admission with chain id, not accepted and then dropped.

Cadence

These are scheduling targets, not guarantees

Both figures below are intervals the block producer aims for. Neither is a latency guarantee, and neither is a throughput figure - the sealer skips a late tick rather than catching up, so a target describes a cadence and not a promise. This documentation publishes no throughput figure.

StageTarget
Mini-block~10 ms scheduling targeta signed batch of transactions and receipts, constituting a preconfirmation. Sealed by a dedicated OS thread that skips a late tick rather than catching up. MINIBLOCK_MS
EVM block~250 ms scheduling targetan Ethereum-shaped block wrapping the mini-blocks of the interval, constituting a confirmation for wallets and explorers. EVM_BLOCK_MS, which refuses any value below 50
Executionimmediateeth_sendRawTransaction blocks until the transaction has executed; it does not merely enqueue. The seals above are when the result becomes visible as a preconfirmation and then as a confirmation
Finalityafter L1 settlementthe state after the containing batch is settled on Ethereum. This site uses the word for nothing else

Execution and gas

ParameterValue
Execution hardforkCancunpinned as revm SpecId::CANCUN, not operator-tunable - a revm upgrade cannot silently re-price gas under an already-settled chain
Block gas limit30,000,000also the per-transaction ceiling: a transaction that cannot fit a block is rejected at admission
Base fee0the EVM runs with basefee 0 and blocks report baseFeePerGas 0x0; fees are still charged through gasPrice
eth_gasPrice1 wei0x1
Minimum accepted gas price1 weiMIN_GAS_PRICE, a consensus constant. Deliberately not an environment variable: an operator-tunable minimum would let a replica re-price a transaction the leader accepted, and derivation would halt
Fee beneficiary in revmaddress(0)then re-split by the sequencer in the same transaction; blocks report the fee treasury as miner

Two of these are compile-time constants rather than environment variables, and that is a correctness requirement: a tunable minimum gas price or a tunable hardfork would let a replica reject or re-price a transaction the leader had already accepted, and derivation would halt on the divergence. Pinning Cancun also means a revm upgrade cannot silently change gas accounting under a chain that has already settled.

Gas is paid in ETH, permanently. PKL is never required to transact - see the glossary for what PKL is and is not.

What the node keeps

DataRetained
EVM block history~2 minuteskeep_evm_blocks() = 120,000 / EVM_BLOCK_MS - 480 blocks at the default. Older blocks return null and their logs become unqueryable
Mini-block history20,000KEEP_MINI_BLOCKS, roughly 200 seconds at the 10 ms scheduling target
Receipts and bodies200,000MAX_RECEIPTS, evicted first-in-first-out
Full historynot on the nodeit lives in Postgres behind the explorer, fed by the sequencer's spool. This RPC is an index, not an archive

This is the single most consequential table on the site for anyone writing an indexer, and it has its own page with the failure modes spelled out. The short version: the node is an RPC index, not an archive, and a query pattern that assumes otherwise will silently lose data rather than error.

Contract addresses

Not published yet, and do not guess

There is no deployed-address table on this site because there is no deployed-address list in the repository - the deployment manifests are written per-environment and are not committed. The only concrete addresses anywhere in the source tree are the deterministic ones a local Anvil produces on chain 31337.

Do not use those against the testnet, and be careful with any address you find in a configuration file. An EVM CALL to an account with no code succeeds: a swap routed at an address where nothing is deployed does not revert, it takes your ETH and reports success. This is the one mistake on this chain that costs money rather than time.

Until the table is published, read the addresses off the running deployment: the toolkit and explorer front ends resolve them at runtime, and a node you run yourself writes them when you deploy.