Proof of presence,
on every vote.
A Realms voter-weight plugin that gives weight only to wallets with a recent Entros verification.
- Program
- Devnet prototype
- Checks
- Trust Score and recency
- Voter weight
- 1 per eligible Anchor
- Works with
- spl-governance v3.x
Nobody proves they showed up.
Bots vote with delegated authority. Scripts auto-vote off whale signals. Staked wallets vote unread.
A token balance cannot say who stands behind the vote. Token weight ≠ community will.
The gap is on the record.
Three Solana protocols across three years. Each ballot read the token balance. None read the human.
2022
Mango Markets
The exploiter who drained $47M voted through Mango's own governance to keep most of the take. Their balance cleared quorum.
2023
Synthetify
Ten self-funded proposals moved roughly $230K out of the Synthetify treasury, each clearing the threshold on bought-in tokens.
2025
Jupiter Jupuary
The Jupiter team filtered 750,000+ wallets out of Jupuary after the fact. Every filter ran downstream of the airdrop.
Verified human. Verified vote.
The plugin reads the voter's Trust Score and verification recency from their Anchor. The on-chain prototype applies those checks when its update instruction runs.
A forthcoming Realms client will insert that instruction before governed actions. Population uniqueness and Governance UI wiring remain release gates.
- Verified
- Current
- On-chain
Three steps to verified governance.
Configure
DAO admin sets a minimum Trust Score and a maximum verification age. One transaction creates the registrar.
Verify
Each voter completes a behavioral verification through Entros. Trust Score grows with each re-verification.
Vote
The planned Realms client inserts the voter-weight update before a governed action. Eligible Anchors receive one unit of weight.
Layer on top. Don't replace.
The current Registrar has no predecessor field, and the update instruction accepts no input voter-weight record. Future work will define safe composition.
Entros + Token Voter
Planned composition with token-weighted voting.
Entros + Quadratic
Planned composition with quadratic voting.
Entros + NFT Voter
Planned composition with NFT-gated voting.
Two parameters. Full control.
The DAO admin sets two values when creating the registrar. The realm authority can update both anytime.
- min_trust_scoreu16
- Minimum Trust Score for voting weight. 0 means any verified wallet qualifies. 100 requires one re-verification. Higher values ask for longer behavioral history.
- max_verification_agei64
- Maximum seconds since last verification. 2,592,000 = 30 days. 604,800 = 7 days. An expired voter re-verifies before voting.
// DAO admin configures the Entros voter weight plugin await program.methods .createRegistrar( 100, // min_trust_score (at least one re-verification) 2592000, // max_verification_age (30 days in seconds) ) .accounts({ realm: realmPubkey, governanceProgramId: govProgramId, governingTokenMint: mintPubkey, realmAuthority: admin.publicKey, payer: admin.publicKey, }) .signers([admin]) .rpc();
On-chain foundation deployed.
The voter-weight program runs on Solana devnet. A JavaScript client, Governance UI registration, and end-to-end Realms tests remain planned.
99nwXzcugse3x8kxE9v6mxZiq8T9gHDoznaaG6qcw534
View source on GitHub