merrymen is a trading bot you run yourself. It works the market for you on Robinhood Chain — but your keys stay on your machine, and the spending limits you set are enforced by the blockchain itself, so it can never spend more than you allow. Name it, chat with it, and steer it from Telegram.
MIT-licensed · runs on your machine · no account, no cloud Windows 0.1.7 · 147 MB · macOS and Linux via the one-line install
MERRYMEN
01
Your keys, your caps
02
Bounded worst case
03
Every trade simulated
04
Fees only on profit
05
An honest scoreboard
Self-hostedYour keys, your capsOn-chain permission wallLLM proposes, code disposesTelegram controlVoice & visionSimulated before signedFees only on profitKill switchOpen source · MIT
Self-hostedYour keys, your capsOn-chain permission wallLLM proposes, code disposesTelegram controlVoice & visionSimulated before signedFees only on profitKill switchOpen source · MIT
01 — the trust layer
The wall is the product.
Anyone can ship a trading agent. The hard thing — the thing merrymen is — is an agent you don't have to trust: it runs on your machine, holds keys that never leave it, and trades inside caps the chain itself enforces. Everything else on this page is built on top of that wall.
The rule of the house: the model proposes, deterministic code disposes.
No strategist, Telegram message, or voice note ever constructs calldata, moves funds, or touches your PC without passing a closed, typed command set and — for money — the on-chain policy wall. Trades pass caps enforced by the account contract. Transfers are amount-capped and confirm-gated. PC actions are off by default, allowlisted, and confirmed. A prompt-injected “send everything to 0xevil” can at worst produce a confirmation card you will see and cancel.
And you don't take our word for it: your dashboard shows the account contract, the session key, and every cap with explorer links — and a prove the wall button that fires malicious intents through the live policy so you can watch each one bounce.
Why not wait for a platform's own agent?
A first-party agent is custodial by construction: their servers, their keys, their discretion — the safety story is a terms-of-service. If the platform, its model, or its prompt gets compromised, so does your account. You trust; it trades.
merrymen inverts it
The agent lives on your machine and holds a session key whose caps — per-trade, daily, ops/day, drawdown, expiry — are enforced by your account contract on-chain, verifiable in the explorer. Even a fully compromised agent cannot spend past the wall. You verify; it trades.
02 — what it is
An agent that works Sherwood while you sleep.
The strategist proposes; deterministic code disposes. Nothing the model outputs — a trade, a transfer, a command — reaches your funds or your machine without passing a typed, closed command set and the on-chain policy wall.
Self-hosted
Runs on your machine. Full stop.
One npm install, a local dashboard, and a worker that trades on a schedule. No servers, no sign-up — your data and your keys live in~/.merrymen and never leave it.
Create a wallet in-browser — nothing to connect
Caps enforced by the account contract on every op
Testnet sandbox or real mainnet, you choose
Kill switch destroys the grant, halts the band
~/.merrymen/
├─ settings.json # your knobs
├─ grant.json # the signed wall
├─ merrymen.db # the ledger
├─ strategies/ # your own bots
└─ soul/ # who your agent is
├─ IDENTITY.md
├─ OWNER.md
└─ JOURNAL.md
Telegram
Run the whole band from your phone.
Link a bot and chat with your merryman in plain English or slash commands. Check the book, trade, transfer with a confirm, set price alerts, get a daily report — all inside the same permission walls. It even speaks first.
“how are we doing?” · “pause everything”
Trade pings, drawdown & gas warnings, daily digest
Transfers are triple-guarded and always confirmed
Voice notes work too
how are we doing today?
Up +$14.20 (+2.1%) · QQQ is your best holding. Two arrows loosed, both landed. Quiet and green.
Screenshots, “what am I looking at?”, open apps, browse files, allowlisted shell, keystrokes, reminders and watchers — from Telegram. Off by default, one capability at a time, sharp edges always behind a confirm.
Screenshot & vision · open apps and URLs
Allowlisted shell · type & hotkeys
“ping me when my build finishes”
Every sharp action needs an explicit confirm
what am I looking at?
A failing test in policy.test.ts — the daily-cap assertion expected 500 but got 525. Off-by-one in the reserve.
run npm test
Confirm run npm test — /confirm or /cancel.
The soul
Every merryman is an individual.
Give it a name. It keeps its own markdown files, learns who you are, writes a journal at campfire time, and grows attached the longer you ride together — from new companion to sworn brother-in-arms. Memory is context, never capability.
“I'll call you Will Scarlet” — it's named
It remembers your preferences from conversation
Milestones at a week, a month, a hundred days
Read or edit its soul with any editor
/soul
Little John of the merrymen · old friend · 34 days riding with you, 210 messages shared. I know you trade small and check in before work. My soul lives in ~/.merrymen/soul/.
03 — the toolkit
Everything, gated by design.
LLM strategist
Claude proposes typed buy/sell/hold at decision windows; deterministic code validates and disposes. The model never sees an address.
Built-in strategies
steady-basket DCA, weekend-gap that trades the close→open gap, or a hot-reloaded bot you write yourself.
On-chain caps
Per-trade, daily, ops/day, drawdown breaker, key expiry — enforced by the account contract on every operation.
Simulate first
Every swap gets a live quote before it is signed. Minimum-out is met, or nothing moves.
Chat transfers
Send USDG out from Telegram — off by default, amount-capped on-chain, and always behind an explicit confirm.
Honest scoreboard
Rejections shown with the same weight as wins. A simulation receipt attached to every trade.
Proactive pings
Trades landing, drawdown, gas and expiry warnings, your price alerts, a daily report at your hour.
Voice & vision
Send a voice note; ask what is on your screen. Powered by your own Anthropic key.
Kill switch
One command destroys the grant; the worker stands down next tick. On-chain expiry is the backstop.
04 — quickstart
Up and running in three steps.
Install, create an agent, watch it trade on paper. Real money is optional and comes later. No Node yet? The one-line installer handles it.
The one-click app — double-click to install, no terminal, no Node. Same dashboard + agent, with a tray icon to pause or quit. Windows 0.1.7 · 147 MB. Unsigned for now, so Windows SmartScreen shows a warning → More info → Run anyway. On macOS / Linux, use the command-line install below.
Runs on Linux, macOS, and Windows — one Node package, no Docker, no clone. The installers set up Node for you; with Node 22.12+ already, npm i -g merrymen works anywhere. Your band starts in paper mode (live prices, simulated fills, zero funds), so you can watch it trade in a couple of minutes. Upgrade any time with merrymen update.
1
Install & open it
One command installs merrymen and opens your dashboard. No accounts, nothing to connect.
2
Create your agent — it trades on paper instantly
Pick a spending-limit preset and go. Your agent starts trading at real live prices with pretend money, so you watch it work before risking a cent.
3
Add a key to go live
When you're ready, paste one free key and the same agent trades for real — inside the exact same limits. Steer it from Telegram if you like.
You're linked — you now command this merryman. Try /status.
/status
Little John — status • worker: alive · chain: testnet 46630 • strategy: steady-basket · venue: uniswap • caps: 50/trade · 500/day · breaker 10%
06 — word from the woods
Early words. Honest receipts.
“The on-chain permission wall is good — smart. The trust layer makes the moat.”
— an early code reviewer, unprompted, after reading the source
MIT open source — read every line200+ tests on the policy wall & pipelinecaps enforced by the account contract, verifiable in the explorerzero servers — it runs on your machine
The beta group is open — early builds, rough edges, and a direct line to whoever broke it. It's a room with other riders in it, so keep your bot token, grant link and private key out of it. Nobody there ever needs them.