bedrock
Block 0 > How sealing works

Block 0 is bedrock. Nobody mines it.

Bundlers can't land in the launch block, so they can't hoard supply. This page explains what gets sealed, what still works, and how to check any coin yourself.

TL;DR
The block a token is created in accepts exactly one buy: the creator's first buy, capped at 5% and disclosed on the token page. No bundles, no snipers. Trading opens for everyone in the next block.

Why block 0 matters

On most launchpads the creation transaction can be bundled with buys. Whoever bundles gets the first, cheapest slice of supply before the coin is even visible — then sells into everyone who arrives after. Bedrock closes that slot. The only buy in block 0 is the creator's, and it is capped and public, so there is nothing to bundle.

How a launch plays out

ActionLaunch blockNext block onward
Create tokenAllowed—
Creator first buyCapped · disclosed · inside launch()Normal buy like anyone
Any other buyRejected · SameBlockAsLaunchAllowed · 1% per-wallet cap for 60s
Bundled buysRejected · the whole bundle revertsAllowed (normal buys)
Creator moving coinsRejected · CreatorLockedInLaunchBlockAllowed

Why it can't be dodged

The hook never tries to work out who the buyer is. It compares the current block with the block the pool was registered in, and only lets one caller through: the launcher, during the first buy, for that pool only. That is why a second wallet, a contract that launches and buys in one transaction, an EIP-7702 batch from the creator's own address, a different router and a direct call to the pool manager all fail the same way — each has a test in the repository.

On Arbitrum-style chains like Elysium the normal block number is the parent chain's and spans many L2 blocks, so the hook reads the real L2 block from the chain's ArbSys precompile.

Verify a launch

Every token page shows the launch block and the launch transaction at the bottom of its trades list, and the Protection page checks any address. The API returns the same:

GET /api/verify?q=0x…
{ "found": true, "launchBlock": 312801, "firstEligibleBlock": 312802, "b0Rejected": 2, "b0Landed": 0, "devBuy": { "supplyPct": 1.2, ... } }