Onchain proof, not screenshots

Live rounds: real members, real payouts.

Every round below ran on NEAR testnet through the FairShare contract. The envelope, the scores, and the payouts are the onchain record. You can check each one yourself with the transaction links and the view calls at the bottom of this page.

18Members in the DAO
5.000 NEAREnvelope, round 1
4.999 NEARPaid out, round 1
130468Total score, round 1
3 yoctoDust left in the contract

Numbers above are the last verified onchain state. The page reads fresh state from the contract when it loads; if the chain cannot be reached it says so below.

Your wallet

Connect your testnet wallet above to see your membership and standing, and to allocate in an open round.

Council badges

Every council member holds a soulbound 3D badge: an NFT that cannot be transferred, minted when they join the council and burned if they leave. It carries the member's standing at mint.

FairShare council badge, a gold rimmed medallion split into teal, green and amber slices

Badge contract: fairshare-badge.testnet · 19 badges minted · Deploy: GHzcM1s8AbLwusihFkFoA1vim1baLRvwfQTn33wALggM · Transfers are blocked in the contract, so a badge cannot be sold or given away.

Reading the badges from the contract…

Round 1 SETTLED ONCHAIN

Round 1 ran with a 5 NEAR envelope and 6 members from the DAO council. It used the worked example allocations from the contract tests, so its payouts are the worked example scaled to 5 NEAR. Every member balance rose by their payout minus gas, so the transfers really landed.

Contract: fairshare-contract.testnet · DAO: fairshare-dao.testnet

Create round: 4GUrEhckeFgBCUV718MMT3oPgaopt23drWqYkqhHhS9s · Sync DAO members: CihwgreGNAYuWyb6pRRbWRy6oUyHRwx5vPWJW3DEBJcs · Settle: 2MUqHsLbbMcZGsneNnBBTinUfPXXJwdoRnJjwzxhpJYu

Live state is being read from the contract…

Members and payouts

MemberScoreShare of envelopePayout

Payout chart

Loading the payout chart…

Total score 130468. Payouts add to 4.999 NEAR. 3 yocto of dust stays in the contract. Frank earned the most, 1.187 NEAR, from 3 givers. Carol earned the least, 0.290 NEAR, from 3 givers. No member hit the 25% cap in this round; the highest raw share was 23.74%.

Explain my payout

Pick a member and see exactly how their score was built, giver by giver, from the contract record. This is the SourceCred idea applied to a round: click a person and see where every point of their score came from.

FromPointsDiscountEffectiveRoot part

Worked check, Alice: Frank gave 61 points with no discount, root part 78. Carol gave 18 points, discount 9, effective 9, root part 30. Bob gave 8 points, discount 4, effective 4, root part 20. Dave gave 7 points, discount 3, effective 4, root part 20. Root parts add to 148. 148 squared is 21904, which is Alice score. Her payout is 21904 divided by 130468 of 5 NEAR, which is 0.839 NEAR.

Round 2 SETTLED ONCHAIN

Round 2 settled onchain with a 5 NEAR envelope and 6 new members. Payouts add to 4.999 NEAR, 3 yocto of dust stays in the contract. Two members hit the 25% cap and were paid exactly 1.250 NEAR each, with the excess flowing to the other four. This is the cap working live, not in a test. Settle: 6FsBf9r42Ji8afF8G6rebq2GqChmpUQW41cCpTuaodJF

Members and payouts

MemberScoreShare of envelopeCapped?Payout

Payout chart

Loading the payout chart…

Total score 125923. Ibrahim earned the most by score, 36100, and Ada was second, 33489. Both were capped at 1.250 NEAR. Tunde earned the least, 0.298 NEAR, from 2 givers. The new members are Ibrahim, Fatima, Ada, Ngozi, Tunde, and Emeka, all on fairshare.testnet accounts.

Explain my payout, round 2

FromPointsDiscountEffectiveRoot part

Worked check, Ibrahim: Fatima gave 30 points, discount 12, effective 18, root part 42. Ada gave 20 points, no discount, root part 44. Ngozi gave 25 points, no discount, root part 50. Tunde gave 50 points, discount 20, effective 30, root part 54. Root parts add to 190. 190 squared is 36100, which is Ibrahim score. His raw payout was above the 1.250 NEAR cap, so he was paid exactly 1.250 NEAR.

Round 3 SETTLED ONCHAIN

Round 3 is the reputation round: the first round settled under the standing rule. Eleven members allocated and one, Tunde, deliberately submitted nothing, to prove the penalty live. Payouts add to 4.999 NEAR, 5 yocto of dust stays in the contract. Ada was capped at exactly 1.250 NEAR. Settle: 7ZbAQganvPJKGHsQkUGYXE56tdvqLm9UM1CGRwcCkMWG · Close: C3nXKn8MKioieU5wW6AZGEYEqQ7CDBVebttaxNSNEYcJ · Funding proposal #7: LiZkXGB2phs1xhqZbxuFmFctYuHTAEPh8DLYGWowvid

The funding proposal taught the project something real. It failed twice before it passed: the DAO looks rich on its total balance, but Sputnik stores every proposal onchain, so the DAO must keep about 4.74 NEAR staked for its own storage, and executing a proposal also returns the 1 NEAR bond. A 5 NEAR envelope therefore needs the DAO at about 11.5 NEAR total, not 5. The DAO was topped up to 11.5 NEAR and the seventh vote passed. The full story, with the failed votes, is in the repo runbook.

Members, payouts, and standing

MemberScorePayoutStanding beforeStanding after
Ada2724841.2500 NEAR (capped)100110
Emeka292410.6969 NEAR100106
Tunde262440.6255 NEAR10095
Fatima213160.5080 NEAR100106
Ibrahim213160.5080 NEAR100106
Ngozi213160.5080 NEAR100106
Bob96040.2289 NEAR100104
Carol84640.2017 NEAR100104
Dave84640.2017 NEAR100104
Frank84640.2017 NEAR100104
Erin29160.0695 NEAR100102
Alice00 NEAR100100

Total score 429829. Ada received points from 9 distinct givers, so she gained the capped +10. Tunde received points from 3 givers but submitted nothing, so he lost 5. Alice received points from nobody and submitted, so she stayed at 100. Every score was checked against an independent integer model before the settle was accepted.

Payout chart

Loading the payout chart…

The gates, proved live

Before the settle, Ada, standing 100, tried to close the round early. The call was rejected: closing early needs standing 150. After the settle, Tunde, standing 95, tried to propose a round. The call was rejected: proposing needs standing 100. No round 4 was created. Both rejections are failed receipts onchain; the contract code is built to abort on a failed check, so the receipt carries no message text, only the failed call and the unchanged state.

Round 4 SETTLED ONCHAIN

Round 4 added six new members to the council, taking it from 12 to 18, and only the six new members allocated. Each gained 6 standing, from 100 to 106, and the 12 existing members each lost 5 for submitting nothing. Payouts add to 4.999 NEAR, 3 yocto of dust stays in the contract. No member hit the 25% cap; the highest raw share was 17.58%. Settle: AXBjLUKBCBL4NcVAFhcQPRqEyEsSFA6cB4UtLMbKCWjR · Close: EpKcSvvB3t4eh7oVFe3bVLkGXHtQ2dHbi3pWLySo1DFg · Funding proposal #14: Dxx62Dnwa9NSRnwbU2TF1aPDxf22WTqonCNFUnLxnJ4R

Members, payouts, and standing

MemberScorePayoutStanding beforeStanding after
Kemi
kemi-fairshare.testnet
207360.8791 NEAR100106
Zainab
zainab-fairshare.testnet
207360.8791 NEAR100106
Tobi
tobi-fairshare.testnet
198810.8428 NEAR100106
Amara
amara-fairshare.testnet
196000.8309 NEAR100106
Chidi
chidi-fairshare.testnet
184960.7841 NEAR100106
Segun
segun-fairshare.testnet
184960.7841 NEAR100106

Total score 117945. Worked check, Kemi: Segun gave 40 points, discount 15, effective 25, root part 50. Zainab gave 35 points, discount 15, effective 20, root part 44. Chidi gave 25 points, no discount, effective 25, root part 50. Root parts add to 144. 144 squared is 20736, which is Kemi score. Her payout is 20736 divided by 117945 of 5 NEAR, which is 0.879 NEAR. Every score was checked against an independent integer model before the settle was accepted.

Payout chart

Loading the payout chart…

Transactions

Council adds, one proposal per person, each passed by strict majority: #8 Chidi 59GMPavYKdtpZE5ojfnbdVck8m3x5eSKeaeDWn8w2m3x · #9 Amara 4sWyFWFxPfXNu3B6XbQgPE4eTnZ1zvGbcMGWYeSdW1LR · #10 Segun G8JRHXUgfSD3FZi8SS8HxAfhov3qxi3JcWqxAvwYoeNn · #11 Kemi HVxT35ryJhfDVHGDXji8gX3CjJtB8TBWUPSX4rSut6NH · #12 Tobi 86Eq4QdkiwoWrjpUbKWqDpjUKi7tRKEYSfAtCtLPK5Py · #13 Zainab CsqEGAvSxQj61hDdPBvggSpWhMSTkzY2mmVwJv4RyxgC

Funding proposal #14: Dxx62Dnwa9NSRnwbU2TF1aPDxf22WTqonCNFUnLxnJ4R · Sync DAO members: 8xekwzk8c9qFSvDSMVEDMAmynuCt3boTKG7kgB3U3mjw

Allocations: Chidi CYiorX3cLcrzMGL7RUYcJ4hJrskyHkbH1hcfAAXmVMed · Amara nSuTjYmWtqdTV6uYYUi6ukEbnmmQ9dGGYz3qnvDwu61 · Segun 62V4NdwSACMuigFjim77y6sTK5ByiMQC5imdV95a7QBG · Kemi HReBHJpRQpeT1VBj6JeLSUD4AhThqN7zb9pzeWQjtSJD · Tobi AG7CFbzp7gCpboVuX7nWANVKfx7VRBoiPJJnHZgRFU24 · Zainab 3qDLEUvNtKixiZ2tuhCjobASgTMCaZP3rHBvsjHXgrhS

Close: EpKcSvvB3t4eh7oVFe3bVLkGXHtQ2dHbi3pWLySo1DFg · Settle: AXBjLUKBCBL4NcVAFhcQPRqEyEsSFA6cB4UtLMbKCWjR

Standing across the rounds

Standing is reputation that moves: plus 2 per distinct giver, capped at plus 10 a round, minus 5 for submitting nothing, floored at 50 and capped at 200. The chart shows the 12 members who were on the council for rounds 2, 3, and 4. Everyone stood at 100 after round 2, when the rule went live.

Loading the standing chart…

The DAO and governance

Membership in FairShare is a Sputnik DAO role, read live across contracts. The contract mirrors the DAO council into its member set with sync_dao_members, and get_dao_role checks one account live against the DAO policy. The DAO is the source of truth. The local member set is a synced mirror.

DAO: fairshare-dao.testnet · Name: fairshare · Council: 19 members, the 6 demo members plus the 6 round 2 crew plus the 6 round 4 crew plus clearsite587.testnet, who joined by proposal #15 · Policy: 1 of 2 vote to pass, 1 NEAR proposal bond, 7 day proposal period

DAO deploy: 23KcWfmQD2cu6nBJkx1yAoWk8istBR75omCzXVfZUDnv · DAO init: DV39wdiRmhgLAwZ2TCtZncR8RVMhQQ8iPy7jHd2YyYug

  1. Join. A new member joins the DAO council by proposal. The council votes, and the proposal executes. Sputnik decides approval by proposal kind and role, never by amount.
  2. Sync. Anyone calls sync_dao_members on the round contract. It reads the DAO get_policy live and mirrors the council into the member set.
  3. Fund. The DAO funds a round by proposing a FunctionCall to create_round with the envelope attached. The council votes, the proposal executes, and the envelope sits in escrow in the contract.
  4. Allocate and settle. Members allocate, the owner closes the round early or the 7 day deadline passes, and anyone calls settle_round. The contract pays each member from the envelope.

One fact worth knowing: the live testnet factory only creates DAOs as its own subaccounts, so it cannot create the top level name fairshare-dao.testnet. The real Sputnik v2 contract was deployed directly to that account instead, with the wasm read onchain from genesis.sputnikv2.testnet.

Governance, from this site

Membership comes from a DAO proposal and a council majority. A connected council member can propose a new member, start a round, and vote on open proposals right here. Anyone can read the proposals, connected or not. The list below is read live from the DAO every time this page loads.

Reading open proposals from the DAO…

Membership Integrity Monitor

Membership is the one thing a bad actor can game without touching the settlement maths: join twice, or join with friends and vote each other in. This panel shows who is on the council, how they got there, whether the contract mirror matches the DAO, what each member actually did in the settled rounds, and which pairs gave each other a large share of their points.

Approved council membership

Reading the council live from the DAO and the contract…

Pending admission proposals

Reading open proposals from the DAO…

Last membership synchronisation

Last successful synchronisation, from the recorded history: B92RYmbboLwazJzd5V7LS7en1w7UNy5Z92HRMhK3YvQF · 2026-11-08 13:07 WAT · 19 members after the sync · After proposal #15, clearsite587.testnet.

Membership history

Loading the membership history…

Allocation activity by member

Loading allocation activity…

Warnings: coordinated allocation patterns

Checking the settled rounds for mutual heavy pairs…

Security & Membership

Governance-Controlled Membership

Connecting a NEAR wallet does not automatically grant FairShare membership.

Every member must first be approved through a strict-majority Sputnik DAO proposal. Once approved, the council membership is synchronised with the FairShare contract, granting the wallet permission to participate in allocations.

When a member is removed from the DAO council, their FairShare allocation permission is revoked at the next successful membership synchronisation. The contract records the last synchronisation time.

FairShare uses governance-based Sybil resistance, not cryptographic identity verification. Multiple wallets belonging to one person could still be admitted if the council approves them.

Membership is governed by the community, not granted automatically by wallet connection.

Trezu manages this DAO

Trezu is the treasury app for Sputnik DAOs. This DAO is a standard Sputnik DAO, so it is the kind of DAO Trezu manages: council members propose, vote and execute through it, and the contract reads membership live from it.

The honest limit: Trezu production is mainnet only, so there is no live Trezu testnet payout, and none is claimed here. What was verified is the local testnet view: the Trezu frontend run locally with the mock backend from the Trezu repo, opening fairshare-dao.testnet, shows the real onchain data. Requests, Executed tab: all 16 proposals, each Executed, including the round 2, round 3, and round 4 funding proposals and the proposal that added clearsite587.testnet to the council. Members: all 19 council members. Settings, Voting: 10 of 19 threshold, 7 day vote duration. Assets and recent transactions stay empty, because there is no indexer for testnet DAOs. The exact steps and screenshots are in the repo, TREZU.md.

Check it yourself

Nothing on this page asks you to trust it. Read the contract state with plain view calls:

  1. get_params on fairshare-contract.testnet returns 100 points per member, at least 3 recipients, cap 2500 basis points, discount 5000 basis points, round 604800000000000 nanoseconds, standing starts at 100, and the reputation rule: +2 per distinct giver, capped at +10 a round, minus 5 for no allocation, floor 50, cap 200, propose at 100, close early at 150.
  2. get_dao_info returns the DAO id, the member role, the member count, and the last sync time.
  3. get_round with round id 1 returns the 5 NEAR envelope, closed true, settled true, total payout 4999999999999999999999997 yocto.
  4. get_payouts with round id 1 returns all six payouts. explain_payout with round id 1 and any member returns their score broken down by giver.
  5. get_policy on fairshare-dao.testnet shows the council role with 19 members, the 6 demo members plus the 6 round 2 crew plus the 6 round 4 crew plus clearsite587.testnet.

If the page cannot reach the public RPC, it says so plainly and keeps showing the last verified state, labelled as such. It never invents numbers.