Hat Tip Repair Café

Repair Café · live on NEAR testnet

Peer thanks, paid out by the café’s own DAO.

Volunteer help is rarely posted as a bounty first, so here the people who were helped say who helped. Each member hands out 100 thanks a round, and the café’s Sputnik DAO pays the round’s budget by the thanks received, in three tiers of trust:

  1. Paid at oncesmall, to members with a record: the contract’s own vote
  2. One council votemid-size: any one council member passes or vetoes
  3. Council majoritylarge or first payouts: a normal DAO proposal

Social Money track: four requirements and the checkpoint

each link opens its proof on this page, read live from NEAR testnet

  1. DAO treasury, no multisigMoney and approvals stay in the café’s own Sputnik DAO.The DAO’s policy ›
  2. Traceable reputationNamed accounts; every point traces to a round, its giver and a note of finished work.A member’s record ›
  3. Three approval tiersAuto-approved, one council vote, or a council majority, by record.A proposal the contract filed ›
  4. A public boardNotes, thanks, live payouts with their votes, every record, and the DAO’s bounties with their claims.This round’s board ›Bounties and claims ›
  5. Checkpoint: approval flowsWhich flows Sputnik already has, and which Hat Tip adds.The answer ›

This round at the café

What each member did, the thanks they got so far, and what they would be paid if the round closed now.

All eight members are house bots with a published strategy, and so is the council. Visitors give as guests.

Payouts of round –

Each payout is a proposal in the café’s Sputnik DAO. The receiver’s record decides how many people must say yes.

1Paid automatically

Within the receiver’s auto limit: the contract’s own vote passes it.

2Needs one council vote

Within the co-sign limit: any one council member can pass or veto it.

3Needs a council majority

Larger, or a first payout: a council majority decides.

Bounties

Jobs the café can name in advance, posted as Sputnik DAO bounties: a member posts one, a council majority approves the money, a member claims it with a bond and files the work, and one council vote pays it from the treasury. Its poster then thanks the finisher in that round.

–Open

Approved by the council, waiting for someone to claim them; new ones in the vote.

–Being worked on

Claimed with a bond. Filed work waits for one council vote.

–Done and paid

The DAO paid the amount to the finisher and returned the bonds.

Reading the DAO’s bounties… As a guest you can watch: claiming and filing work take a NEAR account in the café’s members role (the DAO admits members by a council vote) and the bond, which comes back when the work is approved or given up within a day. Read live with get_bounties, get_bounty_claims and the DAO’s proposals.

The same thanks, counted twice

Why collusion pays less: a simulation of the contract’s own arithmetic, every thanks counted plainly and with the rules, side by side.

Share of payouts above the share of work, in percentage points: plain counting → with the rules. 24 members, 52 weekly rounds, colluders playing their best response.

Ring of four
+17.9→+5.4
Ring of three
+13.8→+2.0
Colluding pair
+3.5→−0.7
the chart for every scenario, then the café’s own house community, round by round · a simulation, not the live café

Ledger of rounds

Every round as the contract keeps it. Open one to see who thanked whom and what counted.

Reading the ledger

How it works

Read from the contract’s config() and the DAO’s get_policy.

Reading the rules…

Which approval flows exist, and which Hat Tip adds

In Sputnik v2 already, used as they are

  • Roles (a group of accounts, token holders, everyone), with permissions per proposal kind and action (transfer:AddProposal, call:VoteApprove).
  • A vote policy per role and kind, as a ratio or a weight, and a default one: the three tiers are three of them.
  • Transfer and FunctionCall proposals, the bond, expiry and Finalize, VoteRemove.
  • Bounties (AddBounty, bounty_claim, BountyDone) for work posted before it is done, with the claim bond: live here, next to the thanks.

Added by Hat Tip, outside the DAO

  • Amount limits. Sputnik has none, so the contract’s code picks the tier, and the contract has no keys.
  • Rounds of thanks, the counting, reputation and strikes.
  • Every payout filed as a DAO proposal, its outcome read back (pay, check_payout).

Set in the DAO’s policy

  • The factory’s auto-update off, so nobody can replace the DAO’s code.
  • Members may post bounties and file their work, nothing else; one council vote approves finished work, a majority any new bounty.

From the Sputnik v2 source and a probe on testnet: the full answer.