PolkaInk
On-Chain History Archive Protocol · Polkadot · v3.4
✦ Genesis Consensus ✦
History, now it's all ON-CHAIN Secured by code · Written on-chain · Immutable by design
◎ PERMANENT ARCHIVE  ·  VERIFIABLE  ·  IMMUTABLE  ·  ON-CHAIN  ·  POLKADOT  ·  DAO GOVERNANCE  ·  NFT  ·  LINEAR HISTORY  ·  GENESIS CONSENSUS  ·  FULLY DECENTRALIZED  ·  PERMANENT ARCHIVE  ·  VERIFIABLE  ·  IMMUTABLE  ·  ON-CHAIN  · 
⛓ Polkadot Hub
🗳 DAO Governance · 5% Quorum
♾ Permanent Storage
🌐 Fully Decentralized
Explore →

✦ Genesis Consensus ✦

"When a chain's history
is forgotten,
its future is already dead."

Launched in 2020. Do you remember that Polkadot was...

Polkadot was once a revolutionary vision - connecting all chains via the Relay Chain, letting value flow freely through XCM.

Gavin Wood wrote the Genesis Consensus: chains should interconnect and trust each other.

Today: Projects operate in silos, community consensus is fragmented, historical documentation is scattered, and AI-generated “history” is polluting those early memory.

A consensus without history is mere form — without soul.

✦ In One Sentence ✦

PolkaInk is an on-chain history archive protocol running on Polkadot Asset Hub —
letting the Polkadot ecosystem's memory be written on-chain, permanently and irrevocably.

◎ Project Overview

PolkaInk uses transaction calldata as its storage medium, writing Polkadot ecosystem history documents (Markdown) directly into blocks — no databases, no cloud services, no single points of failure. Content reaches consensus through staked membership + community voting before going on-chain, with the Archive Council guarding ethical boundaries, and three types of on-chain Soulbound NFTs incentivizing genuine contributors.

Once written, every full node can independently verify the history. No power can erase it.

⛓ Polkadot Asset Hub ♾ Calldata Permanent Archive 🗳️ DAO · 5% Quorum 🎨 Soulbound NFT 🌐 Fully Decentralized

◎ Open Source · Tech Badges

Repository

Chain · Contract

Frontend

CI / CD · Status

No database. No cloud.
Only the blockchain itself.

Markdown content is written directly into Polkadot blocks via calldata. Any full node can independently verify it. It exists permanently.

SolutionStorage LocationDeletion RiskTampering RiskOffline Verification
GitHub / ForumCentralized server Deletable anytimeEditable anytime
IPFS + Contract HashOff-chain P2P Lost if nodes go offlineCID replaceableRequires pinning
PolkaInk · calldata Polkadot blocks ❌ Cannot be deleted❌ Cannot be tampered✅ Any full node
🔒 Calldata Permanence 🗳️ Community Consensus Determines Content 🛡️ Archive Council as Last Line of Defense
Yes, we know calldata storage is expensive — but history of Polkadot deserves to be written on its own chain.
Other systems can store data. But only this chain, Polkadot, can store the pride.

The Problem and the Answer

Chapter I · The Problem

Wiki article marked "Deleted" · AI gives wrong history
GitHub doc says "last edited 3 days ago"

The history you trust can be changed

Chapter II · The Answer

Search → Propose → Vote → On-chain
Approved, Creator NFT minted

Witness history being written on-chain

▶ Watch on YouTube

https://youtu.be/Ta2DKs1SdYE

Six Principles of PolkaInk

Design philosophy: power should not be bought, only earned — contribution is trust, time is proof

⚖️ Stake to Enter, Contribution Weighted

88 PAS is the participation threshold, not a power chip. Voting weight depends on how much accepted content you've written and how long you've locked.

📖 Linear History, Immutable

Proposals are Pull Requests; approved votes merge permanently into on-chain calldata. There is no undo — only continued writing.

🚫 No Single-Person Approval

Weight hard cap: cap=2.00=T. A single person's max effective weight is 1.80. No individual can ever unilaterally pass a proposal.

🌐 Equal Contribution, Equal Foundation

Writing contribution B_hist and lock-up contribution B_lock share the same ceiling of +0.40. Neither is designed to dominate the other.

🛡️ Collective Protection, Transparent Veto

The Archive Council only applies the brakes when necessary. Every veto must include an on-chain reason, permanently auditable.

💰 Incentivize Participation, Not Bias

Voting rewards are distributed via 30-day Epochs. YES or NO votes both qualify. Rewards are decoupled from stance — keeping judgment independent.

🪪 Proof of Personhood Polkadot Native

Current Sybil resistance: 88 PAS stake threshold + single-person weight cap 1.80 < T. Future direction: integrate Polkadot Proof of Personhood (PoP) to replace or supplement stake-based entry with verified on-chain identity — enabling fairer one-person-one-base-weight and fundamentally eliminating multi-account manipulation risk.

Technical Architecture — Stack & Design

Polkadot Asset Hub native · Fully decentralized · Self-governing contract logic

FRONTEND React 18 + Vite 5 + TypeScript wagmi v2 + viem v2 Tailwind CSS v4 i18next (6 langs) Mobile-first SPA Zustand + React Query
↕ wagmi + viem · Wallet ↕
POLKADOT ASSET HUB pallet-revive REVM (EVM compat) Chain ID 420420417 Solidity 0.8.28 UUPS Proxy (OZ)
10 Contract Modules
PolkaInkRegistry
Document lifecycle
Seed document management
VersionStore
calldata version storage
parentVersionId DAG
GovernanceCore
Proposal · Vote · Reward
≥5% quorum threshold
ArchiveCouncil
Collective veto 5/7
Emergency freeze + DAO confirm
StakingManager
88 PAS stake lock
3/6/12/24mo options
NFTReward
3 Soulbound NFT types
Guardian minted in constructor
Treasury
rewardPool · Epoch rewards
Open donations, no limit
VotingMath
Weight calculation library
B_hist + B_lock
TimelockController
48h delayed execution
Non-upgradeable · Security anchor
ProxyAdmin
UUPS proxy management
Non-upgradeable
✅ Post-deploy: Fully decentralized, contract logic self-governing SEED_CREATOR_ROLE is renounced immediately after seed docs are created — no one can create seed documents thereafter calldata permanently on-chain · Independently verifiable by any full node

Technical Architecture — Call Chain & Security Design

Core Call Chain

// Full proposal lifecycle User → StakingManager.stake(lockMonths) → NFTReward.mintMemberNFT() User → Registry.proposeVersion(docId, hash) → VersionStore.storeVersion() → GovernanceCore.createProposalFor() User → GovernanceCore.vote(proposalId, choice) → VotingMath.calculateWeight() Anyone → GovernanceCore.finalizeProposal() → [Approved] Opens 24h Council window Council → ArchiveCouncil.castVeto() [5/7 to veto] Anyone → GovernanceCore.executeProposal() → Registry.mergeProposal() → NFTReward.mintCreatorNFT() → Treasury.distributeProposerReward() // 50% → Proposer 30% → Epoch pool 20% → Retained

Security Design Matrix

ThreatProtection
Flash loan manipulationLock-up 3–24 months
Sybil attack88 PAS threshold + 5% quorum
Single-person approvalcap=2.00, max effective weight 1.80 < T
Spam proposals72h cooldown after Rejected/Vetoed
Council abuse of power≥50 bytes on-chain reason required
Guardian NFT inflationNo GUARDIAN_MINTER_ROLE
Upgrade abuseTimelock 48h + DAO vote
Centralized admin riskFully decentralized post-deploy; no unilateral intervention
Treasury depletionSkips reward (no revert) if <50 PAS
Council member replacementNo setMember() before Phase 1; election contract governs after
✅ UUPS + 48h Timelock ✅ Archive Council Collective Veto ✅ 5% Quorum Snapshot ✅ 200 PAS Reward Hard Cap

✦ Deployed · PAS Testnet ✦

Contract Deployment — Chain ID 420420417

LIVE · 2026-03-09 UTC
✅ 64 Tests Passing 💰 Treasury 5,000 PAS 🔑 SEED_CREATOR_ROLE Renounced
Contract Deployed Address Status
PolkaInkRegistry
Document registry
0xc3C208…15eFe
VersionStore
calldata version storage
0xb77Eb7…83dCd
GovernanceCore
Proposal · Vote · Reward
0x87Cb96…59aB
ArchiveCouncil
Collective veto 5/7
0xFC107c…D0fc
StakingManager
88 PAS stake lock
0x286301…2443
NFTReward
3 Soulbound NFT types
0x145EA0…72B3
Treasury
Reward pool · Open donations
0x4c0CdB…7285
TimelockController
48h delay · Security anchor
0x33CC1A…ec61
ProxyAdmin
UUPS proxy management
0x4EBb54…fD68
9
Contracts deployed
64
Tests passing
5K
PAS treasury funded
4
Seed docs written
◎ Security Checklist
SEED_CREATOR_ROLE renounced
No Guardian NFT mint role
48h Timelock upgrade delay
OpenZeppelin UUPS Proxy
Zero privileged admin post-deploy
RouteScan Block Explorer

Membership · Staking · NFT System

Three types of NFT, all earned through on-chain behavior. All Soulbound during the Demo phase.

Staking Lock-up Bonus

Lock DurationB_lock BonusBase Weight
3 months+0.17231.1723
6 months+0.24181.2418
12 months+0.31871.3187
24 months+0.40001.4000
Early unstake via earlyUnstake(): returns 79.2 PAS (90%), 8.8 PAS → Treasury reward pool

Three NFT Types at a Glance

🎫 Member NFT Stake to Enter

Auto-minted when staking 88 PAS. Required to vote, propose, and create documents. 1 per address. Soulbound.

✍️ Creator NFT Proposal Merged

Auto-minted when a VersionUpdate proposal is executed and merged. Stackable without limit. B_hist grows logarithmically, capped at +0.40.

🛡️ Guardian NFT Constructor Mint

Minted directly to 7 genesis Council members in the constructor. No GUARDIAN_MINTER_ROLE — no one can mint more after deployment. No voting weight bonus.

Governance — Voting Weight & Proposal Flow

Voting Weight Formula

weight = min(1.0 + boost, 2.00) ← hard cap boost = B_hist + B_lock B_hist = 0.40 × ln(1 + creator_nft) / ln(21) cap +0.40 (≈ 20 Creator NFTs) B_lock = 0.40 × ln(1 + lock_months) / ln(25) 3mo: +0.1723 · 12mo: +0.3187 · 24mo: +0.4000 Guardian NFT: no weight bonus Max single-person weight = 1.80 < T = 2.0 ← can never pass alone

Typical User Weights

User ProfileWeight
New member, 3mo lock1.1723
5 approved docs, 6mo lock1.4768
10 approved docs, 12mo lock1.6337
20 approved docs, 24mo lock1.800 ← max effective

Triple Threshold to Pass a Proposal

① score > 2.0

score = Σ(choice × weight) · YES = +weight · NO = −weight · ABSTAIN = 0

② Quorum ≥ 5%

= total participating weight / snapshot of global base weight at proposal creation — denominator cannot be manipulated

③ Archive Council did not complete 5/7 veto

If 5/7 veto is reached within the 24h review window, proposal enters CouncilVetoed state and triggers a 72h cooldown

Cooldown Rules (v3.4)

Rejected or CouncilVetoed → Proposer faces a 72h cooldown on the same document
Voluntarily Cancelled → No cooldown

Archive Council — The Last Ethical Safeguard

Not content arbiters — a collective brake for extreme situations

Authority Boundaries

May ExerciseMay NOT Exercise
Verifiably false historyContent deemed low quality
Contract upgrade with hidden backdoorCommunity disputes but lawful content
Clear copyright or legal violationPolitical disagreement
Hate speech or discriminatory contentEmergencyConfirm itself
Every veto must select one of the above reasons and include ≥ 50 bytes of on-chain justification. Permanently recorded. Publicly auditable.

Role in Regular Governance

Guardian NFT grants zero weight bonus. Council members vote on equal footing with all other members in ordinary governance.

Genesis Config → Election Path

Demo Phase (Current)
Genesis 7-Member Config
7 addresses written in constructor. No setMember(). Fixed configuration until Phase 1. vetoThreshold = 5/7
Phase 1
DAO Proposal → Election System
Community deploys CouncilElection contract, calls transferControlToElection() (irreversible). vetoThreshold auto-lowers to 4/7. Member changes managed by election contract.
Phase 2+
Full Self-Governance
6-month term rotation. Open nominations. Guardian NFT auto-rotates. 75% DAO supermajority can remove members (via Timelock).

Council Fixed Stipend

5 PAS per person per Epoch · Fixed distribution · No response rate or participation conditions
Funded by: Treasury rewardPool (35 PAS total per Epoch)

Economic Model v3.4 — Dynamic Rewards & Epoch System

Only VersionUpdate proposals trigger reward distribution · Stance-decoupled · Anti-distortion

Dynamic Proposal Reward

ProposalReward = min( 50 PAS + voterCount × 1 PAS, ← participation bonus min(rewardPool × 10%, 200 PAS) ← dynamic ceiling ) Example (rewardPool = 5,000 PAS): Dynamic ceiling = min(500, 200) = 200 PAS 20 participants → 50+20 = 70 PAS 150 participants → 50+150 = 200 PAS ← capped If rewardPool < 50 PAS: Skip reward, proposal still merges 🔄

Reward Distribution (VersionUpdate only)

50%
Proposer
Paid at executeProposal
30%
Epoch Voters
Proportional by weight
20%
rewardPool
Retained & recycled

Epoch Voter Rewards (30-day cycle)

Eligibility: voted in ≥ 50% of valid proposals this Epoch
Reward pool: sum of 30% shares from all passed VersionUpdate proposals
Distribution: eligible members weighted proportionally
YES / NO / ABSTAIN all count — stance has zero effect on reward

Treasury Fund Flow

SourceUse
Early unstake penalty 8.8 PAS/timeVersionUpdate proposer reward 50%
MVP initial funding 5,000 PASEpoch voter reward 30%
Community donations (open, unlimited)rewardPool retained 20%
Polkadot Ecosystem GrantCouncil fixed stipend 35 PAS/Epoch

UpgradeContract / ParameterChange executed successfully → Returns 5 PAS stake, no reward issued

💡 Sustainability note: Long-term rewardPool health depends on Polkadot Ecosystem Grants and community donations (any address can call depositRewardPool() or send directly), forming an open funding cycle.

Document & Version Model · Seed Document Plan

Git-like linear history · Proposals are Pull Requests · Merging is permanent

Git Analogy

Document created (v1, seed — title only) ↓ proposeVersion → community vote v2 First content added (merged) ↓ proposeVersion → community vote v3 Details corrected (merged) ↓ Active PR #45 pending vote... ⏳ ◎── v3 [merged] 2026-02-15 Score+3.44 quorum 8% │ "Add 2025 Q1 events" by 0xABCD │ ◎── v2 [merged] 2025-12-01 Score+5.10 quorum 14% │ "First content added" by 0x1234 │ ◎── v1 [seed] 2025-11-01 by Admin "Document created (empty, awaiting community)"

Frozen state note: Proposals can still be submitted when a document is Frozen, but executeProposal will revert if still Frozen at execution time — proceed after unfreezing

Four Core Seed Documents

🌐 Polkadot Ecosystem Chronicle

#history #timeline — Key events from genesis to present. The macro main history. Great entry point for newcomers.

🗳️ Governance Proposal Archive

#governance #referenda — Records of major referenda: proposal IDs, outcomes, and impact. Deeply tied to on-chain governance.

⚙️ Runtime Upgrade Log

#technical #runtime — Runtime upgrades tracked by version. Technical evolution for developers.

📈 Ecosystem Project Milestones

#ecosystem #projects — Only publicly verifiable information. Key milestones from leading projects.

SEED_CREATOR_ROLE is renounced immediately after the 4 seed documents are created. No one can invoke this function thereafter.

Project Roadmap — Writing History, Step by Step

Phase 0 · M1–M2 ✅
Contract Architecture · Testnet
10 contract modules completed. Hardhat environment. PAS testnet deployment verified. Archive Council genesis 7-member config. Applied for Polkadot Treasury Grant.
Phase 1 · M3–M5
MVP Mainnet Launch · Browser
Core contracts deployed to mainnet. Frontend Markdown browser live. calldata on-chain verification. i18n in 6 languages. Social sharing distribution mechanism.
Phase 2 · M6–M8
Full DAO · Council Election System
GovernanceCore fully launched. CouncilElection contract deployed. NFT reward system activated. Bug Bounty program. Invite first contributors.
Phase 3 · M9–M12
Open API · AI Summaries
Ecosystem API opened. Mobile PWA optimization. AI-assisted summaries (off-chain inference, on-chain archive). Polkassembly data integration.
Phase 4 · M13+
Multi-chain Expansion · DeFi Yield
Kusama history support. Other parachains. Explore PolkaVM native contract migration. DeFi yield to supplement treasury. Liquid staking exploration.
Phase 5 · Long-term
🪪 Proof of Personhood Integration
Integrate Polkadot native PoP to supplement or replace stake-based entry with verified on-chain identity. Combine ZK proofs for one-person-one-weight, fundamentally eliminating multi-account Sybil attacks for fairer governance.
🏆
Annual Hall of Fame
Launches once protocol is stable and community reaches scale threshold

Held annually. Selects the 10 most impactful Polkadot ecosystem contributors of the year. Their records are permanently written into the on-chain history archive.

Nomination fees + voting fees + prediction market fees ↓ 65% → Hall of Fame internal distribution (winners / nominators / voters) 35% → Feeds back into PolkaInk main Treasury rewardPool

Expected to cover major operational costs with protocol revenue by the 3rd edition, forming a self-sustaining economic loop.

Long-Term Vision

Become the world's first fully on-chain, community-consensus, DAO-governed public history archive protocol in Web3 — running permanently and unstoppably, like the blockchain itself.

Design Retrospective — Rise, Fall & Rebuild: v1 → v2 → v3.4

Each version iteration was a pruning of over-engineering

v1.0x 2026-02 · First Draft

The Over-Engineered Starting Point

Introduced a 7-member Archive Council, but member management belonged to Admin — replaceable at any time. The "decentralized safeguard" was a false premise.

DOT holdings + NFT dual-track weight system. OG Gold/Silver/Bronze privilege NFTs airdropped by the team, effectively giving founders a permanent voice advantage.

Problem: 60% approval threshold + no stake requirement + Subsquid dependency + IPFS frontend — extremely high complexity, many single points of failure. Decentralization was a slogan.

v2.0x 2026-03 · Radical Simplification

The Overcorrection

Removed the Archive Council entirely. Replaced with OG Gold single-person veto — the intent to "remove elitism" ironically created a bigger single point of power: one NO could kill any approved proposal.

Introduced a ReportManager dispute mechanism intended for community self-governance. But reports could be weaponized (bulk accounts), contradicted calldata's permanent storage core value, and overlapped with Council veto responsibilities.

Problem: 6 NFT types (OGBronze/Silver/Gold/Member/Creator/Author) inflated governance complexity. Without a Council, who handles truly extreme content risks?

v3.4 Current · Organic Balance

The Answer: Restraint and Balance

Re-introduced the Archive Council, but fully removed Admin's ability to control membership — 7 addresses written into the constructor, setMember() removed, no replacements possible before Phase 1.

Abolished OG NFTs and Author NFTs, streamlined to 3 NFT types. Abolished the report mechanism (calldata is permanent — reports can't change history; only Council collective veto and community re-versioning are the proper dispute paths).

Key gains: Zero privileged admin. Iron rule: single-person max weight 1.80 < T=2.0. Epoch rewards decoupled from voting stance — not a shortcut, but a mark of system maturity.

The core question of every retrospective was never "do we have enough features?" but "can power be abused?"
v1 concentrated power in Admin. v2 concentrated it in OG Gold. v3.4 distributes it across math and contracts.

What Will PolkaInk Bring to Polkadot?

On-chain history protocol × Staking governance × NFT incentives — Estimated ecosystem growth

+50,000
New on-chain interactions / year
+5,000
New active staking addresses
+20,000
Ecosystem followers re-engaged
300+
On-chain archived docs in year one
3 Types
Streamlined NFT incentive system
6 Languages
Multilingual community reach
100%
On-chain verifiable · Zero centralization
🏗️
Infrastructure
On-chain storage · Permanent archive
🗳️
On-chain Governance
Stake access · Quorum threshold
🎨
NFT Ecosystem
3 on-chain Soulbound NFT types
🛡️
Archive Council
Collective veto · Transparent on-chain reasoning
🤖 PolkaInk Agent Skill · Available Now SKILL.md Format Claude · Cursor · Copilot Compatible
📋 Contract Interface Knowledge
10 contract ABIs, call chains, permission models — AI agents can use directly for contract development and audit assistance
⚖️ Built-in Governance Rules
Weight formula, proposal lifecycle, Council veto rules — AI can auto-generate governance-compliant code and documentation
🎨 NFT System Description
Member / Creator / Guardian minting logic helps AI understand the rights structure, accelerating frontend and test script development
✅ Open Standard
Any developer or AI tool can load it — lowering the barrier to join the PolkaInk ecosystem and driving community co-building
PolkaClaw

Humans Who Picked Up the Consensus

Alice

Alice

Full-stack Engineer / Product Design / Governance Mechanism Design
Passionate about Web3 narratives

Jolin

Jolin

UI | UX | AX | Big fan of Anthropic's latest model

Quentin

Quentin

QA Testing / DevOps / Infrastructure Automation
Keeping the pipeline green

Team: PolkaClaw

Thank You · Acknowledgements

Polkadot
Papermoon
OneBlock

Thank you to the Polkadot ecosystem for supporting Web3 infrastructure.

Thank you to all developers and community members!

🔗 Try the Testnet Demo ⭐ Star on GitHub

📦 GitHub:https://github.com/easyshellworld/polkaink

🌐 Demo:https://polkaink.netlify.app/

◎ PolkaInk · v3.4 · Write history on-chain. Memory that cannot be erased.

1 / 19