One stone at a time.

Raise money together on Robinhood Chain, with nobody holding it for everyone else. Contributions stack in the contract until the target is met, in USDG or in any tokenized stock. Reach the goal and the pot opens for the beneficiary. Miss the deadline and every contributor pulls back exactly what they put in.

every contribution is a stone.
the goal is the summit.

0.50% fee, taken once, on release

Robinhood Chainliveexplorerfee 0.50% on release

Four moves. Nothing hidden in between.

01

Open a pot

Give it a name, pick the ERC-20 it is denominated in, set a target amount and a deadline. Solo means only you can add to it. Shared means anyone with the link can.

02

Add stones

Every contribution is an approve plus a contribute. The contract records exactly what it received from each address, so a fee-on-transfer token can never desync the accounting.

03

Reach the goal

Once the balance meets the target, anyone can call release. The money only ever moves to the beneficiary set at creation, minus the protocol fee.

04

Or take it back

Deadline passed without the goal met? Every contributor calls refund and pulls out exactly their own share. There is no loop over contributors anywhere in the contract, so a pot cannot get too big to unwind.

goal reached

Release sends the whole balance to the beneficiary.

still climbing

Contributions stay in the contract, nobody can pull them out early.

missed the deadline

Each contributor refunds themselves, to the unit.

Raising money together, without asking anyone to trust you.

Every collection has the same weak point: somebody has to hold the money. Cairn removes that person. Contributions are locked in the contract, the beneficiary is fixed the moment the pot is created, and if the target is missed each contributor pulls their own money back without needing permission from anybody.

A fundraiser

for a cause, a person, a bill

The money sits in the contract, never in the organiser's wallet. Nobody has to trust that it will be passed on, because nobody can pass it anywhere except the beneficiary set when the pot was opened.

A group gift

a leaving present, a wedding, a birthday

One link in the chat, everyone adds their share. The balance is public, so nobody has to ask who paid and who forgot.

A shared plan

a trip, a deposit, a piece of gear

Set the number and the date. If you get there, the pot opens. If you do not, everybody takes their money back and nobody has to chase anyone.

A private goal

for yourself, in dollars or in shares

Solo pots take contributions from you alone. Denominate one in a tokenized stock and you are stacking shares toward a number instead of a balance.

One piece of advice we follow too. Keep a fundraiser in USDG. A pot denominated in a tokenized stock moves with the market, which is fine when the contributors are also the ones who get the money and chose that risk. It is not fine when people are giving to a cause: collect 1,000 and release 800 and you have lost more than the difference.

A pot can be denominated in a stock.

This is the part a normal money pot cannot do. You pick the ERC-20 the pot is counted in at creation. Pick USDG and it is a dollar pot. Pick NVDA and the target is a number of NVDA, the contributions are NVDA, and what comes out at the end is NVDA.

Cairn never swaps anything. It holds the token you put in and gives back the same token. There is no DEX in the contract and no price feed in the settlement path.

available denominations48

USDG

Global Dollar, 6 decimals, the cash option

Plus 31 more tokenized equities on the chain, every one of them a plain ERC-20 with 18 decimals. The create page has all 48 with search.

Read straight off the chain.

Everything below is a live read against the deployed contract. No indexer, no cache layer, no numbers typed in by hand.

pots created

0

protocol fee

0.50%

fee ceiling in code

1.00%

$CAIRN waiver

not yet armed

contractblockscout

No pots yet. Be the first.

The contract is live and empty. The first pot created on it will show up here, read straight from chain state. Nothing is seeded and nothing is faked.

Create the first pot
example, not on-chain datathese three pots do not exist

What a pot looks like once it has stones in it.

The three cards below are mockups so the interface is readable before anybody has created anything. Every real pot on this site is read from the contract and never from a fixture file.

Two NVDA by Christmas

shared · 4 contributors

1.24/ 2 NVDA
OpenMar 18, 2027

Roadtrip, six of us

shared · 6 contributors

1,610/ 2,400 USDG
OpenFeb 5, 2027

SPY piggy bank

solo · 1 contributor

6.5/ 10 SPY
OpenSep 12, 2027

What the contract will not do.

The owner cannot take a pot

There is no admin function that touches pot balances. The only levers are the fee, the treasury address and the two waiver values.

The fee is capped in the bytecode

MAX_FEE_BPS is a constant equal to 100. setFee reverts above it. Nobody can change that without deploying a different contract.

The fee is taken once

Not on contribution, not on refund. Only on release, and only out of the released amount.

Refunds are pull, never push

Each contributor withdraws their own share. No function iterates over contributors, so a pot with a thousand people unwinds as cheaply as one with two.

Decimals are never assumed

The contract stores raw token units. USDG at 6 decimals and a stock token at 18 behave identically. Formatting happens in this interface, not on chain.

It is not audited

Cairn is a single 250 line contract with 62 tests and no upgrade path, deployed as is. Read it before you put money in it.

Tokenized equities move in price. A pot denominated in a stock can be worth less in dollars on the day it is released than on the day it was opened. Cairn holds tokens, it does not protect their value.

$CAIRN

$CAIRN launches on Pons, on Robinhood Chain. It has exactly one job in this product, and it is written into the contract already.

token address
waiver in the contractwritten, not yet armed

Hold $CAIRN, release for free.

The contract carries two owner-settable values, feeToken and feeWaiverBalance. Both are zero at deploy, which means the waiver is off and the flat 0.50% applies to every release.

After the Pons launch, one admin transaction calls setWaiver($CAIRN, minimum). From that block on, any release whose beneficiary holds at least the minimum pays no fee at all. The check reads the beneficiary balance at release time. Nothing is locked, nothing is staked, nothing is transferred to us.

fee today

0.50%

fee holding $CAIRN

0.00%

The fee is hard capped at 1.00% in the bytecode. The owner cannot raise it past that, cannot touch a pot, cannot move contributor funds, and cannot pause anything.

Read the token page

Put down the first stone.

A pot takes one transaction to open. You need a wallet on Robinhood Chain and some of whatever token you want to save in.

what you need

  • 1A wallet on Robinhood ChainAny injected wallet, switched to chain id 4663. The site offers the switch for you.
  • 2The token you want to save inUSDG for a dollar pot, or any of the 47 tokenized equities. The pot is counted in that token from end to end.
  • 3One transactionCreating a pot moves no money. You fund it afterwards, like anybody else contributing to it.