LODE
SHEET 04Method

How LODE works.

LODE is fee sharing by proof of work. The coin's own trading fees are collected every minute and split among the wallets that hashed that minute, weighted by the difficulty of each wallet's best hash.
§ 1Fee flow

From a trade to your wallet

  1. AB
    Trades

    Buys and sells on the LODE pool pay a flat 1.5% fee.

  2. BC
    Keeper claim

    Once a minute the keeper claims the fees the pool owes the deployer.

  3. CD
    Split

    90% of the claim goes to the vault as the round's pot; 10% stays with the deployer.

  4. DE
    Hashes

    During the minute, miners submit their best keccak256 hash for the round.

  5. EF
    Shares

    Settlement: each miner is owed pot x weight / total weight.

  6. Fend
    Claim

    Shares credit to your on-chain balance; claim pays it to your wallet in SOL.

LODE trades on a Meteora Dynamic Bonding Curve pool quoted in SOL, with a flat 1.5% trading fee. Every round lasts one minute. When a round ends, the keeper (a wallet run by the deployer) claims the fees the pool has accrued for the deployer, settles the round and opens the next one.

90% of each claim goes to the round's pot, held by the program's vault; the other 10% goes to the deployer. If a round has no miners, its pot is not lost: it carries into the next round that has miners.

Anyone with a Solana wallet can mine. There is no minimum holding and no pre-launch window. The keeper wallet itself cannot mine.

Earnings are credited to your Miner account's balance on your next submit or claim, and claim pays the balance to your wallet in SOL. The keeper may also push larger balances to their owners. A settled round stays claimable for 300 rounds, about five hours; a share nobody credited by then moves back into the pot as carry.

§ 2The hash

72 bytes, one keccak block

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
0-31 challenge
32 bytes, from the Rounds account; new every round
32-63 wallet
32 bytes, your public key
64-71 nonce
8 bytes, u64 little-endian; the only part you vary

Each attempt hashes the round's challenge, your wallet and a nonce:

h = keccak256(challenge || wallet || nonce_u64_le)
d = leading zero bits of h
    (byte 0 first, most significant bit first)

The challenge comes from a recent Solana slot hash taken when the round opens, so nobody can start early. Your wallet is inside the preimage, so a nonce found for one wallet is worthless to any other, and copying someone's submission gains nothing.

keccak256 here uses the original Keccak padding, the same as Ethereum and Solana's keccak syscall, which the program uses to check every submitted hash itself. Calibrate runs the standard test vectors on your device.

§ 3Difficulty and weight

d_min, the cap, and what a bit is worth

Best dWeightHashes per hit, averageNote
19rejected2^19 = 5.24e5below d_min
2012^20 = 1.05e6d_min
2122^21 = 2.10e6
2242^22 = 4.19e6
24162^24 = 1.68e7
26642^26 = 6.71e7
282562^28 = 2.68e8
301,0242^30 = 1.07e9cap reached
321,0242^32 = 4.29e9past the cap
361,0242^36 = 6.87e10past the cap

The program's defaults: d_min 20, cap_bits 10. The deployer can tune them in Config; the live values appear here once the program is on chain.

A submission counts only if d ≥ d_min. Its weight is 2^min(d - d_min, cap_bits): every bit past d_min doubles the weight, because finding it takes twice the hashing on average. Past d_min + cap_bits, more hashing earns that wallet nothing more.

Each wallet keeps only its best hash per round; a heavier one replaces it. At settlement a miner earns pot x weight / total weight, rounded down to the lamport.

The cap limits how much one wallet can take from a round. It does not stop anyone from splitting work across many wallets; see the risks.

Hash rateExample deviceHashes in 60 sBest d, 50% chanceWeight at that d
1 MH/sPhone, WASM6.0e72664
10 MH/sLaptop CPU6.0e829512
100 MH/sDesktop GPU6.0e9331,024
1 GH/sFast GPU or several6.0e10361,024

Arithmetic, not a measurement: after H attempts the best hash reaches d with probability 1 - (1 - 2^-d)^H, so the 50% point is about log2(H / 0.69). Device labels are rough orders of magnitude; measure your own on the Mine or Calibrate sheet.

§ 4Accounts

Where the numbers live

AccountSeedsHolds
Config"config"keeper, mint, d_min, cap_bits, round length, pot share, carry, what is owed to miners
Vault"vault"every lamport of pot, carry and miner balances
Rounds"rounds"the live round (id, challenge, clock, total weight, miners) and a ring of the last 300 settled rounds
Miner"miner", walletyour balance, your pending round and weight, totals earned and claimed

Program LodeVLYx4t3t8cakjds4vNy596A9FVVVi9aXqTrT7rw. All four are program-derived addresses of it.