Kray Improvement Proposals

KIP — like a BIP, for Origin Layer

Before each seal: count fees → read the Scroll → pay. Phase A: Guardians 1/26 · social · utility · raffle · lottery. Future KIPs: vote with KRAY weight · activate at a marked block.

1 Draft KIP 2 Vote 3 Approve + set block 4 All nodes follow

The Constitution Scroll

Living parchment of KIP-0001 — what the automated seal executes today.

KIP
0001

Constitution of Protocol Fees

Era of the Guardians · Origin Layer · Integers only · Gas eternal = 1 KRAY

I. The Seal Ritual

When a block interval ends, the producer claims pending transactions, then — as the last act before the Merkle root — reads this Scroll from l2_config.fee_distribution, sums protocol fees already in the Treasury, and emits SYSTEM reward leaves. Then Merkle · sign · seal. No human chooses winners at seal time.

II. Division of the Fee Pool

ShareBucketLaw
25%TreasuryRetain · Phase B reserve
25%26 GuardiansEqual 1/26 per RuneSpace NFT · 3 NFTs = 3 shares
15%Social assetsInscription / NFT reputation · √score split
15%Utility walletsL2 work reputation · consistency over wealth
10%Inscription raffleBlock RNG · shown on the block card
10%Constitution LotteryAccumulate each seal · draw every 100 L2 blocks · tickets 4 KRAY

All floors are integer. Remainders and unresolved guardian slots stay in Treasury. AMM LP 0.3% never enters this pool.

III. Reputation — Work over Wealth

Gas is the same for every action forever (1 KRAY). Therefore burning KRAY is not reputation. Social scores favor movement (likes, posts, boosts) and √-dampen KRAY received. Utility scores favor consistency (active days), diversity of actions, diminishing returns on spam, and a daily point cap — so a daily worker outranks a binge whale.

Code: src/l2/core/rankingTheory.js · Seal: feeDistribution.js

IV. How it runs without a king

Automatic: every sealed block re-reads the active policy JSON and pays by formula. No dashboard “approve payout” step.

Deterministic: same block id + same fee pool + same rankings → same leaves. Validators can recompute the Merkle root.

Vote locks: choose how much of your KRAY to stake (≤ balance). Pay 1 KRAY gas → stake moves to KIP_VOTE_ESCROW (tag proposal_lock). Cannot transfer that stake. Unlock costs 1 KRAY more. One wallet · one active lock per KIP. Supply = 7,000,000,000.

Scheduled change: approved KIP + activate_at_block — every honest node switches at that height.

Vote locks

Pick your weight. Stake locks on L2 so you cannot recycle the same KRAY across wallets mid-vote.

modelsupply 7,000,000,000 · gas lock/unlock = 1 KRAY each

How to vote

  1. KIP status must be voting.
  2. Choose amount (e.g. 100M of your 700M) and side (for / against).
  3. Sign KRAY:kip-vote-lock:… — stake → escrow, tag proposal_lock.
  4. To free stake: sign unlock + pay 1 KRAY gas again.
POST /l2/proposals/:id/vote-lock · POST /l2/proposals/:id/vote-unlock · GET /l2/proposals/:id/votes

Active fee schedule

What validators use today, and what’s queued (if any).

Loading…

Proposals

KIP-0001 is live. Voting UI comes later — the schedule already works.

Loading proposals…