Platform
Everything a builder needs to read the chain: a live sample transaction for every Diggers operation, each one decoded event by event, plus the complete topic reference and function selector table. Every hash below is real and settled on Robinhood Chain — open any of them to verify.
The Diggers launchpad is the single source of truth for the entire protocol. Every non-ERC20 event — swaps, harvests, points, leaderboard changes, settlements, graduations — is emitted from the launchpad address. An indexer subscribes to one address, plus each token's plain ERC-20 Transfer/Approval.
All four core contracts, verified on the Robinhood Chain Blockscout explorer. Every launched token is an EIP-1167 minimal-proxy clone of the implementation.
0x4190…65800xE15A…3dD90x4a64…06e20x8366…0951A single create() call deploys the token clone, mints the fixed 1B supply, seeds the entire supply as single-sided V4 liquidity, and runs the creation buy — all in the same block. Sample: 0xad7e03cc…e2e097.
| Event | Emitter | What it records |
|---|---|---|
| Transfer | Token | Mint — 1B supply to the launchpad |
| FeeSplitConfigured | Diggers | Creator ETH fee table set at birth |
| Created | Diggers | name, symbol, metadataURI, poolId, fee, burnShare |
| Contender | Diggers | Name + ticker registry keys locked 1h |
| Transfer | Token | Creation-fee buy, burned |
| Swapped | Diggers | Post-trade price, tick, liquidity, reserves |
The full overload adds a custom fee-split table and vesting locks on the initial buy — it also emits LockSet per locked wallet. Sample with 4-tranche vesting: 0x0b4c6067…5b08ca.
A direct buy() routes through the V4 pool and, in the same call, credits digging points, updates the leaderboard, tracks graduation telemetry and (during the season) mines $DIG to the buyer. Sample: 0x8efc28aa…937577.
| Event | Emitter | What it records |
|---|---|---|
| HolderCountChanged | Diggers | New unique holder added (first buy) |
| PointsCredited | Diggers | Points earned — buys score 4× |
| LeaderboardChanged | Diggers | Entered top-10 (or evicted someone) |
| PoolTrade | Diggers | ethValue, tick, holders, cumVolume, epoch |
| AirdropMinted | $DIG | $DIG mined to the buyer (during season) |
| Transfer | Token | Tokens delivered to the buyer |
| Swapped | Diggers | Full post-trade pool snapshot |
A sell() sends tokens and receives ETH with no approve transaction: the token's transferFrom skips the allowance check when the caller is the launchpad, and the launchpad only ever pulls from msg.sender inside the sell flow. Sample: 0x1f8cd661…b10f4a.
| Event | Emitter | What it records |
|---|---|---|
| HolderCountChanged | Diggers | Holder removed if balance zeroed |
| PointsCredited | Diggers | Points earned — sells score 1× |
| PoolTrade | Diggers | Trade telemetry for graduation |
| Transfer | Token | Tokens pulled seller → PoolManager |
| Swapped | Diggers | Full post-trade pool snapshot |
harvest() collects the accrued LP fees from the V4 pool and splits them: ETH side to team + platform + the creator table (pull credits), token side burned + parked as the daily contest pot. Sample: 0xde3807bb…192aab.
| Event | Emitter | What it records |
|---|---|---|
| Transfer (burn) | Token | Token-side fees burned to 0x0 |
| Transfer (pot) | Token | Remainder parked as the daily pot |
| Harvested | Diggers | ethTotal, team, platform, creators, burned, pot |
| AirdropMinted | $DIG | $DIG mined (during season) |
| Swapped | Diggers | Post-harvest pool snapshot |
Settlement is lazy — it piggybacks on the first transfer after the 24h deadline. The carrying transfer is never blocked: the settlement runs first, then the transfer completes normally. Sample: 0xe120e79b…c46ac5.
| Event | Emitter | What it records |
|---|---|---|
| AirdropPaid ×N | Diggers | One per winner: epoch, winner, amount |
| Transfer ×N | Token | Pot paid to each still-holding leader |
| EpochSettled | Diggers | potPerWinner, rolledOver, nextDeadline |
The topic0 (first 10 bytes) of every protocol event, and which contract emits it. Full keccak signatures live in the EXAMPLES.md reference.
| topic0 | Event | Emitter |
|---|---|---|
| 0x1027ac1d… | Created | Diggers |
| 0x464ef255… | Swapped | Diggers |
| 0xe39ee6b8… | PoolTrade | Diggers |
| 0x3ab3a223… | Harvested | Diggers |
| 0xc31f84b3… | PointsCredited | Diggers |
| 0xb267788b… | LeaderboardChanged | Diggers |
| 0x38a5f924… | HolderCountChanged | Diggers |
| 0xc8bdf32e… | EpochSettled | Diggers |
| 0x95c3f77d… | AirdropPaid | Diggers |
| 0x56b90294… | LockSet | Diggers |
| 0x2e1d0cf0… | Contender | Diggers |
| 0x46fc48cc… | ReservationExtended | Diggers |
| 0x4a2dd56e… | Graduated | Diggers |
| 0xd8138f8a… | Claimed | Diggers |
| 0x4c3b3305… | AirdropStarted | Diggers |
| 0xd2c5e200… | AirdropMinted | DiggersCoin |
| 0x32046dc3… | Finalized | DiggersCoin |
| 0xddf252ad… | Transfer (ERC-20) | Each token |
The 4-byte selectors for every external entry point on the launchpad.
| Selector | Function |
|---|---|
| 0xdb61c76e | buy(token, minOut, to) |
| 0x2dc8f867 | sell(token, amountIn, minOut, to) |
| 0x67ce1287 | create(TokenParams) |
| 0x404d93d6 | create(TokenParams, FeeSplit[], LockOrder[], uint256) |
| 0xadcb4e25 | buyAndLock(token, minOut, LockOrder[]) |
| 0xe988c453 | transferAndLock(token, amount, LockOrder[]) |
| 0x0e5c011e | harvest(token) |
| 0x4e71d92d | claim() |
| 0xff6d8d05 | graduate(token) |
| 0xcab6a468 | extendReservation(token) |
| 0x0d7a94f6 | quoteBuy(token, ethIn) — view |
| 0xd98b2f5c | quoteSell(token, amountIn) — view |
Every Diggers pool is a standard hookless Uniswap V4 pool. The pool key is currency0 = address(0) (native ETH), currency1 = token, a dynamic lpFee flag (1–5%, set per token), tickSpacing = 200, and hooks = address(0). The pool is initialized inside the create() transaction at the fixed start price — there is no bonding curve and no migration step.
The launchpad is the pool's only liquidity provider, holding a single full-range position from startTick to MAX_TICK that can never be withdrawn. External routers can swap through the same pool via the PoolManager; buy() and sell() are the recommended entry points because they attribute fees, points and telemetry automatically.
Complete sample-by-sample breakdowns, full keccak event signatures, and pre-filled answers for aggregator listing forms (DexScreener, DexTools and friends) live in the public contracts repository.