rules

obol turns holding the coin on solana into tokens on elysium, chain id 99901. these are the exact rules the tracker runs.

01rules

balance checksevery 60 seconds the tracker reads every token account for the mint and adds up the balance per owner wallet. balances are only seen at these checks: a sell and buy back between two checks is not seen.
lotsa wallet's balance is kept as lots, each with its own start time. the first balance seen is one lot. a buy adds a new lot that starts at the check that sees it; tokens already held keep their age. lots started on the same utc day count as one lot from the latest start that day. lots at the cap are merged.
lot multipliermin(1 + 0.1 × full days since the lot started, 3). the cap is reached after 20 full days.
points formulabetween two checks: points += Σ(lot amount × lot multiplier) × 1 × seconds between checks, with multipliers taken at the earlier check. tokens bought in an interval earn from the next one. if the balance went down, only the new balance earns for that interval, at the wallet's average multiplier.
shown multiplierthe balance-weighted average of the lot multipliers.
minimumwallets holding less than 1 whole tokens earn nothing.
resetany decrease in balance (selling or sending any amount) resets the whole wallet to one lot at 1x. buying more never resets tokens already held. a wallet that goes to zero, or below the minimum, and comes back starts at 1x.
new walletsthe clock starts at the first check that sees the wallet. points begin from the next check.
outagesif checks stop, at most 180 seconds (3 check intervals) count for the gap. the rest earns nothing.
exclusionsthe pump.fun bonding curve, pumpswap and other pools, and any owner that is a program account (off the ed25519 curve) earn nothing and are hidden from the board. exclusions are checked again at every check; an owner that is no longer excluded starts at 1x from the next check. the full list is on proof.
linkingsign a message with your solana wallet to link one elysium address. it can be changed until the conversion time; links made after it do not count. several solana wallets can point to the same address and their amounts add up.
share baseonly linked, non-excluded wallets share the allocation. unlinked wallets receive nothing.
amountamount = floor(allocation × 10^18 × your linked points ÷ all linked points), in wei. points are counted to 6 decimal places, rounded down, for this.
roundingevery amount rounds down. leftover dust stays in the claim contract.
claim listall amounts go into a claim tree (openzeppelin standard format, leaf = address and amount), built once at freeze. the claim root, every amount and every proof are public on proof and at /api/proofs.

02multiplier curve

1.0x2.0x3.0x 05101520 full days held
full days heldmultiplier
01.0x
11.1x
21.2x
31.3x
41.4x
51.5x
61.6x
71.7x
81.8x
91.9x
102.0x
full days heldmultiplier
112.1x
122.2x
132.3x
142.4x
152.5x
162.6x
172.7x
182.8x
192.9x
20+3.0x

03claim contract

orderafter freeze the root setter sets the claim root and then locks it. the contract is funded after the root is locked, and the funding script checks the locked root first. proof shows the root, whether it is locked and whether the contract is funded.
canpay each address in the tree its exact amount, once. anyone can submit a claim for an address, and tokens always go to that address.
cannotaccept a root before its set start time. change the root after it is locked or after the first claim. pay anyone not in the tree. pay an address twice. mint tokens.
leftoversif a claim deadline is set at deploy, the root setter can move unclaimed tokens after it. with no deadline, leftovers stay in the contract forever.
tokenplain erc-20 with 18 decimals and a fixed supply minted once at deploy. no owner, no minting after deploy.
addressesroot setter 0xF07e3BEB9D9E891252C32bD23fBC70b6EebA3155