BeanPool is a free app your community uses to trade help, goods and skills with each other. Instead of money, you use Beans: help someone and Beans come to you; get help and they go the other way. Zero is the goal — give about as much as you take.
No lookalike tracking, data harvesting, or get-rich guru algorithms.
Beans are mutual credit for real trade β never pumped on exchanges.
No dopamine-loop doomscrolling β only real local offerings and neighbors.
No interest, no banks, no middlemen. The only fees are small and go to your community's own Commons pool, never to us.
No blockchain, no coins, no wallet to buy into. Your 12 words simply unlock your own account.
The global community opens to everyone soon, with no invite: look around, post something free or for swap, and find a community near you. It is a private preview today, so start by getting the app.
See the communities already running, or start one on a spare computer or a small rented server. Asking one near you to let you in comes soon, when the global community opens.
Install the app and open the link or scan the QR code a member gave you; an invite works once and lasts 30 days.
Beans live in local communities. The global community shows you around and leads you to one. It shows you how Beans work there, with an example community.
Sam goes up to +30. Ana goes down to β30.
Ana is back to 0. Lee is now at β30.
Everyone is back near zero, and three jobs got done without anyone spending money.
The seller keeps 98.5% of each price; the other 1.5% goes to the community's Commons pool, so the real numbers land a little under these.
A community runs BeanPool on its own small server. Members post what they can offer and what they need, and trade in Beans. A Bean is not money you buy: it is a record that someone helped someone. Everyone starts at zero. When you help, your balance goes up; when you are helped, it goes down; across the community the balances always add up to zero. Nobody issues Beans, nobody lends them at interest, and nobody cashes them out. A small fee on each trade goes to the community's own pool, which its members spend by vote. The app is free and open source; a community picks its own server, and the data on it is theirs.
Mutual credit is old: LETS groups ran it on paper for decades, and Switzerland's WIR has run one since 1934. Paperwork is what wore most of them out. BeanPool is the paperwork, done by the app.
From the first screen to your first trade.
Open the invite a member sent you; soon you can also try the global community with no invite and, from there, ask a community near you to let you in. Either way you pick the name people will know you by.
The app makes your account on your phone and shows you 12 words. Write them down and keep them safe: they bring your account back if you lose or change your phone.
Put up something you can do or share: a lift to town, eggs, fixing a bike, an hour of gardening. You need at least one offer up before you can post a need or buy.
Agree a price in Beans. The Beans are held safely until the job is done, then they go to the seller. You rate each other afterwards.
The app opens on Home, a set of cards you choose. Behind it: the Market, the Map, Talk (Chat in the web app), People, the Pulse, the Commons and the Ledger, where you see your balance and your trades.
What people in your community are offering and what they need, with polls and events in the same feed. Search it, filter by category, and tap to trade.
See what is on offer near you. You place every pin yourself: use your location once, at the moment you post, or drop the pin by hand. BeanPool never tracks where you are. Enterprise and event pins can be set to Approximate, which rounds the spot to about 100 m. Pins are seen by the members of your community. When the global community opens to everyone, a visitor there sees listings and roughly where they are, but no names, no faces and no exact spots.
Post a working bee, a repair cafΓ© or a skill-share with a time and a place. People tap Going or Interested. Everyone going gets the event chat and the host's private note — the gate code, what to bring — and hears about it if the time or place changes or it is cancelled. Events are free; no Beans change hands. Find them on the map under Today, This weekend or Next 7 days, and use Copy to a new date to run one again.
Message anyone in your community. Direct messages between two members are end-to-end encrypted: your community's node carries them but cannot read them. Enterprise discussions and event chats can be read by the people who run your community's node, so they can be moderated — the app says so on each of those chats.
An enterprise is something your community runs together: an egg flock, a tool library, a firewood depot, or a project with a goal and an end date. Keepers run it and a lead keeper leads it; members can ask to join as keepers. It has its own Beans, posts offers and needs in the Market like anyone else, shows its income and spending, and can pause for the season. No keeper can approve a payment to themselves: another keeper has to.
Anyone can ask the community a question with a poll in the Market. Bigger choices are Decisions, in the Commons tab: a grant from the Commons pool to an enterprise, a hardship grant, replacing a lead keeper. A Decision is open for 7 days and carries itself out if it passes. Once you have completed a trade, you can propose one.
Start a group for your street, your garden club or your band, and you become its convenor. Post to the group only, and choose whether it is open, people ask to join, or it is invite only.
See what local people are making. Members can connect their own channels — TikTok, Instagram, YouTube, SoundCloud or a blog feed — and their public posts show up in your community's Pulse. Connecting is up to each member. Anything that shouldn't be there can be reported, and your community's node can take it down.
Nobody buys Beans, and nobody pays interest.
A new account has 0 Beans. When you sell, your balance goes up; when you buy, it goes down. Across the whole community the balances always add up to zero.
Once you have completed a trade, you can go below zero to get help before you have given it back. Your credit line grows as you trade with more people. The offers you keep up set how much of it you can use: one offer lets you use up to 200 Beans of it, five offers up to 2000.
Over time you earn badges: Newcomer, Resident, Steward, Elder. They show your history in the community. They don't unlock anything.
A 1.5% fee on completed trades, and a small monthly fee on the part of a balance above 200 Beans, go to your community's Commons pool — not to us or anyone else. Your community decides what the pool pays for, through Decisions.
On the phone app your key is held in the phone's secure storage, and you can add a fingerprint or face lock. In the web app it is held in that browser's own storage. Your 12 words are the backup that depends on nobody. You can also link an Apple, Google or Facebook sign-in on the phone app, and the global community is joined with one. Your community's node then keeps a locked copy of your key, so that sign-in can bring your account back on a new phone. That copy, and copying your account to another device of yours, are the only ways your key leaves your device. The people who run the node can open the copy.
You can report a post, a member, an event or a Pulse item, and block anyone. Reports go to the people who run your community's node — its owner and admins — who can remove content and accounts. Members can also vote on a Decision to suspend or remove someone.
What is stored, who can see it, and how to delete your account.
Privacy Policy Β· Child Safety Β· Terms Β· Deleting your data
Discover active communities running BeanPool nodes connecting people near you.
Every community runs on its own node: a small server that holds that community's members, posts and ledger. Someone local runs it. If your town or valley doesn't have one yet, it could be you.
You and the admins you appoint are your community's moderators: reports come to you. Your members' data lives on your machine, so you keep it backed up. You can read enterprise discussions and event chats; you can't read direct messages. You invite the first members, and they invite the rest.
Your node comes with its own settings app in the browser. From it you name your community, appoint an owner and admins who sign in with their own keys, print QR invites, watch disk health, choose a public web address or a tunnel, and help a member who has lost both their phone and their 12 words back onto a new account.
A community's listings, map, messages and balances are for its members from the moment its node starts; there is nothing to switch on. Someone who opens its address without an account is pointed to the global community, which opens to everyone soon.
Two communities can agree to link so their members can trade with each other. Beans never leave home: each pair keeps a running tally of what one community owes the other, and each side sets its own limit. Linking is off until both operators switch it on.
About half an hour, if you can follow a recipe. Four things to know first:
Then, on that machine with Docker installed, paste this one block. It fetches the compose file, creates the network the node uses, pulls the published image (Intel/AMD or ARM64), starts it, waits until the server has made its one-time claim code (up to five minutes, for a slow first start on a Raspberry Pi), and claims it. There is nothing to configure before it starts.
git clone https://github.com/beanpool-org/beanpool.git && cd beanpool
docker network create beanpool-shared
docker compose pull
docker compose up -d
echo "Waiting for the server to make its claim code (up to 5 minutes)..."
for i in $(seq 60); do docker compose exec -T beanpool-node test -f /data/claim-code.txt </dev/null 2>/dev/null && break; sleep 5; done
docker compose exec -T beanpool-node test -f /data/claim-code.txt </dev/null 2>/dev/null || echo "No claim code after 5 minutes. The server's log says why: docker compose logs beanpool-node"
docker compose exec beanpool-node beanpool claim
--address https://your.domain instead; to choose later in Settings, --no-name, and add --direct http://IP:PORT (this server's own address) so the QR code carries it, or the phone asks for it. If the BeanPool project's address service is down, the claim still works.If the block says No claim code after 5 minutes, or beanpool claim says This community has no claim code waiting, the server has not finished starting: docker compose logs beanpool-node shows where it is. Once the log says the community has no owner yet and has a claim code, run the last line again. The full steps are in the operator manual's first-time setup.