Groupmoneynobodyhastohold.

Prize money, event budgets, a team's shared fund. Today it sits in one person's wallet and everyone trusts them. Commons keeps it in a NEAR treasury the whole group owns, right inside your Telegram chat.

Built on
  • The council's keys
  • The pot
  • The bot, proposer only

§ 0The books, live

Every payment, on the record.

This receipt is printed from the demo group's DAO on NEAR testnet and refreshed every five minutes. It needs 2 of 3 council signatures to move a coin, and the bot has none to give.

The mark is the vote meter. Each arc is a council member's key; when a majority lights up, the pot pays.

Open the full ledger
Commons
Demo pot · NEAR testnet
testnet-demo-vp4rgk.sputnikv2.testnet
Payments made
1
Approvals needed
2 of 3
Votes cast by the bot
0
In the pot0.6939 NEAR
Bot: proposer only
Read from chain15 Nov 2026, 06:17 UTC

§ 1How it works

From a chat message to a payment, with the group in charge.

The messages use the bot's own wording.
HTHackathon team4 members, Commons bot
Commonsbot
Treasury created
Payments need 2 of 3 approvals. My role in this DAO is proposer only.
Linh
/spend 25 NEAR @huc monitor for demo day
Commonsbot
Payment #4
25 NEAR to @huc
huc.commons.testnet
For: monitor for demo day
Asked by @linh

Status: paid
Ledger
Commonsbot
Paid 25 NEAR to @huc for monitor for demo day. Approved by @an and @linh.
LedgerExplorer

§ 2Why it matters

Today, one person holds the group's money.

Hackathon prizes are paid in one payment to one account. Event budgets and club funds work the same way. Everyone else trusts that person to pay them back.

Where the money sits
One wallet: In one teammate's wallet
Commons: In a Sputnik DAO the group owns
Who can spend it
One wallet: Whoever holds that key, alone
Commons: Only a majority of the council
If the key or the bot is stolen
One wallet: The money goes with it
Commons: The bot can only draft; the contract refuses the rest
The record
One wallet: Screenshots and trust
Commons: Every vote and payment on chain, in a public ledger
Where it happens
One wallet: A wallet app, a bank, a spreadsheet
Commons: The Telegram chat the group already uses

§ 3Safety

Why the money is safe.

Three rules, written into the contract rather than promised by us.

  1. Article
    I

    No single holder

    The money sits in a Sputnik DAO, the contract Trezu builds on. Not in a teammate's wallet.

  2. Article
    II

    The bot cannot pay itself

    Its DAO role is proposer only. Whoever got hold of the bot's key could draft payments, and the contract would refuse everything else.

  3. Article
    III

    Anyone can check

    The ledger reads the rules, votes and payments straight from the chain. So does npm run verify.

Incident report

We attacked our own bot on testnet.

With the bot's key in hand we drafted "send everything to the bot", then tried to approve it and to rewrite the rules. The contract refused both with ERR_PERMISSION_DENIED. The pot kept its money.

§ 4Built on NEAR

The money, the rules and every vote live on NEAR. Telegram is only where the group talks.

Try it with your group

Add the bot to a Telegram group and send /commons. It runs on NEAR testnet, so nothing real is at stake.