For developers / Start here
Network parameters
LiveThe 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
| Parameter | Value |
|---|---|
| Chain name | Pickle Chain TestnetPickle Chain in prose; the longer form is what wallets display |
| Chain ID | 782700x131be - a compile-time constant, enforced on every transaction |
| Mainnet chain ID | 782710x131bf - reserved, not live. Anything asking you to send real funds to a Pickle address today is a scam |
| Gas token | ETHpermanently. PKL is never required to transact |
| Currency decimals | 18 |
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.
| Stage | Target |
|---|---|
| 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 |
| Execution | immediateeth_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 |
| Finality | after L1 settlementthe state after the containing batch is settled on Ethereum. This site uses the word for nothing else |
Execution and gas
| Parameter | Value |
|---|---|
| Execution hardfork | Cancunpinned as revm SpecId::CANCUN, not operator-tunable - a revm upgrade cannot silently re-price gas under an already-settled chain |
| Block gas limit | 30,000,000also the per-transaction ceiling: a transaction that cannot fit a block is rejected at admission |
| Base fee | 0the EVM runs with basefee 0 and blocks report baseFeePerGas 0x0; fees are still charged through gasPrice |
| eth_gasPrice | 1 wei0x1 |
| Minimum accepted gas price | 1 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 revm | address(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
| Data | Retained |
|---|---|
| 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 history | 20,000KEEP_MINI_BLOCKS, roughly 200 seconds at the 10 ms scheduling target |
| Receipts and bodies | 200,000MAX_RECEIPTS, evicted first-in-first-out |
| Full history | not 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.