For developers / Start here
Network parameters
The constants, in one table each.
Identity
| Parameter | Value |
|---|---|
| Chain name | Pickle Chainthe brand, the chain, the token and the name service all say Pickle |
| Network | Pickle Chain Testnetthe network this reference documents. Its state may be reset without notice, and test ETH and test PKL have no monetary value |
| Chain ID | 782700x131be - a compile-time constant, enforced on every transaction: an envelope signed for another chain is rejected at admission. The whitepaper's 78271 is the mainnet figure |
| JSON-RPC over HTTPS | https://rpc.picklechain.xyzno key, no account, no header beyond a content type |
| JSON-RPC over WebSocket | wss://rpc.picklechain.xyz/ws/the /ws path is required; an upgrade at the bare origin answers 405. Both /ws and /ws/ work. eth_subscribe, pickle_subscribe and ordinary calls; see Subscriptions |
| Explorer | https://explorer.picklechain.xyzthe archive the node is not: every block, receipt, log and account, kept past the node's own window |
| Faucet | https://faucet.picklechain.xyztest ETH and test PKL against a pasted address, one claim per address every 24 hours |
| MCP server | https://mcp.picklechain.xyz/mcpfor AI agents: streamable HTTP, read-only, no key; see AI agents (MCP) |
| 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 settlementa block is final when the data needed to re-derive it has been committed to Ethereum and that commitment is itself final. One commitment per 60 s scheduling target |
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
Resolve an address, never guess one
This page publishes no contract address. Be careful with any address you find elsewhere: an EVM CALL to an account with no code succeeds, so 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.
The first-party front ends resolve the addresses they need from the chain at runtime rather than compiling one in. The explorer shows what is deployed at an address, but it verifies no source and publishes no ABI; the repository opens gradually over the testnet.