Realms voter-weight plugin
Gate a Realms DAO on Entros verification with the voter-weight addin.
Realms supports voter-weight plugins: small programs that compute a voter's weight given their wallet, and feed that weight into governance accounting. Entros publishes a plugin that grants weight 1 to wallets that meet a configured Trust Score and recency, and 0 to wallets that don't.
Plugin program
The voter-weight plugin is deployed at:
99nwXzcugse3x8kxE9v6mxZiq8T9gHDoznaaG6qcw534The same program ID is used on devnet and mainnet.
Configuration
The DAO authority creates a Registrar account scoped to the realm and governing token mint, with two fields:
| Field | Type | Meaning |
|---|---|---|
min_trust_score | u16 | Voters must have an Anchor with at least this score |
max_verification_age | i64 | Maximum seconds since the most recent verification |
Pick max_verification_age from what the vote decides.
| Vote | max_verification_age |
|---|---|
| Treasury allocation, parameter change | 3_600 (1 hour) |
| Standard proposal | 86_400 (1 day) |
| Signalling, community poll | 604_800 (7 days) |
A community DAO running standard proposals: min_trust_score = 250, max_verification_age = 86_400. Tighter windows ask voters to verify close to the vote, which is the point for anything that moves funds. The /verify flow takes twelve seconds.
Wire-up steps
- Create the registrar. From the realm authority, call
create_registraron the plugin with the realm pubkey, governing token mint, and the two configuration values. - Add the plugin in Realms. In the Realms UI, navigate to the realm settings and attach the voter-weight addin program ID. The Registrar PDA you just created is the plugin's account.
- Confirm the wiring. Cast a test vote from a verified wallet. The plugin's
update_voter_weight_recordinstruction runs on every vote attempt and produces aVoterWeightRecordshowing weight 1 (eligible) or 0 (rejected).
Composing with token-voter
The plugin supports an optional previous_voter_weight_plugin field. Setting it points at another plugin (e.g. token-voter or NFT-voter) and the Entros plugin compounds onto that—a vote requires both the prior plugin's weight and an Entros pass. This pattern is useful when token weight should still matter, but only verified-human token holders can vote.
What this gives a DAO
One person, one vote, without document upload, KYC, or face scan. The threshold is the lever: low for open communities, high for treasury-controlling sub-DAOs. The plugin reads from the same Anchor PDAs as every other Entros integration; there is no separate enrollment.
The strength of the gate scales with the threshold. A threshold of 100 asks every voter for a single re-verification. A threshold of 500 asks for weeks of cadence, and every capture in that history is scored by the detection stack and compared across wallets before it counts. Choose the floor from the value behind the vote: the higher the floor, the longer the verified history behind each ballot that clears it.
Where to look next
- Concepts: Trust Score—how to pick the threshold for your DAO
- Reference: Programs—full plugin instruction set