How it works

The short version: the collector is replaced by a program that can only do what the circle agreed to.

The contract holds the pot

Each circle lives in Contri's contract on NEAR. When a circle is created, its rules are fixed: the amount, the number of members, how often, and how turns are ordered. Members join by paying a deposit of one contribution. Once every seat is filled, rounds begin.

Each round, every member pays one contribution. When the last one arrives, the contract sends the whole pot to the member whose turn it is, in the same transaction. If the deadline passes first, anyone can ask the contract to settle the round: missed contributions come out of the late members' deposits and the pot pays in full. When the circle ends, what's left of each deposit goes back to its owner.

Turn order is either the order people joined, or drawn at random by the contract from NEAR's block randomness once the circle is full, so the organizer can't pick the best turn for themselves.

Money moves through NEAR Intents

Contributions are USDT held in NEAR Intents, NEAR's network for moving and swapping assets across chains. Members top up from an exchange or wallet on BNB Chain, Solana, Tron, TON, Base, Arbitrum or Ethereum through 1Click, which turns the deposit into USDT in their account. Cashing out works the same way in reverse, to any of those networks.

A payment to a circle is an intent: a short message, signed on the member's phone, that says "move 5 USDT to Contri for circle 3, round 2". NEAR Intents checks the signature and hands the money and the message to the contract, which either accepts it or refunds it with the reason.

Your keys come from your passkey

Contri has no accounts or passwords. When you sign in, your passkey gives the app a secret that only that passkey can produce on this site (the WebAuthn PRF extension). The app turns it into one key per circle. Each key's account is a fresh NEAR account that has never been seen before, so your circles can't be linked to each other. On a new phone, the same passkey gives the same keys back.

Contri pays the transaction fees

Members never need NEAR tokens. Contri's relayer takes your signed intent, checks it is a Contri payment, simulates it, and submits it, paying the NEAR fee. It can't change what you signed, and it keeps no logs. A keeper settles rounds whose deadline has passed and returns deposits after a circle ends; anyone could do the same, it has no special rights.

Turns are tradable

Each seat is an NFT that shows its turn and status, drawn by the contract itself. A member who can wait lists their turn for a price; a member with a later turn who needs the money sooner buys it, and the contract swaps the two seats and pays the seller.

Check it yourself