oathwall

Self-hosted trading infrastructure · BNB Chain

Trading agents,sworn to your limits.

The model proposes. Code decides.Caps your account contract enforces on-chain. Verifiable, not claimed.

100%of trades
checked by
the contract
0withdrawal
addresses
Try to break the wall
BNB ChainSession keysClaude strategistTelegramnpmMIT license

01 / The oath

Sign your limits once. The chain keeps them.

Your account contract checks every trade the agent makes against the terms you signed, so it can't overspend, can't withdraw, and can't outlive its key. That holds even if our software is compromised.

oath_0417.policy enforced

// agent "Atlas" may trade, and only within:

01Per trade
50 USDT
02Per day
500 USDT
03Drawdown breaker
10%
04Key expires
30 days
05Withdrawal address
none
signed_by 0x7a3E…c19D
block 41,822,019

02 / Try the wall

Ask the agent for something it shouldn't do.

These are the checks your account contract runs on every operation, against the oath above. In the app, prove the wall fires the same attempts at your live policy so you can watch each one bounce.

account contractBNB Chain

Buy 5,000 USDT of CAKE in one go

Refused

clause 1 · per trade

5,000 is over the 50 USDT per-trade limit. The session key cannot sign it, so nothing reaches the chain.

03 / The terms

Four articles, and no fine print.

  1. Art. I

    Your owner key never leaves you.

    It is generated on your device and stays there. The agent gets a session key, a separate key whose powers are cut down to exactly what you signed. Money only comes home through your owner key.

  2. Art. II

    The model proposes. Code decides.

    The strategist (Claude, on your own key) suggests a typed buy, sell or hold. Deterministic code checks it against a closed command set, and the account contract checks it again. The model never sees an address and never builds a transaction.

  3. Art. III

    Every swap is simulated first.

    Each trade gets a live quote before anything is signed. If the minimum-out isn't met, nothing moves. Refusals show up on your scoreboard with the same weight as wins.

  4. Art. IV

    You can end it in one command.

    The kill switch destroys the grant and the worker stands down on its next tick. If everything else fails, the key's on-chain expiry ends it anyway.

04 / Run it

Three ways in. The same oath.

A · hosted

Open it in a browser.

Connect a wallet, sign your limits, fund the agent. Nothing to install. Your wallet signs to prove it's you and never moves anything by itself.

app.oathwall.dev →

B · self-hosted

Run it on your machine.

$ npm install -g oathwall
$ oathwall start
✓ paper mode · live prices, no funds

Linux, macOS or Windows, Node 22.12+. It starts in paper mode: live prices, simulated fills, no funds.

Install guide →

C · Telegram

Talk to it from your phone.

how are we doing?

Up $14.20 today. 3 trades, 1 refused by the wall.

pause everything

Paused. Resume with /resume.

Link a bot →

05 / Why not a platform's own agent

You trust them, or you verify.

QuestionA platform's agentoathwall
Who holds the keysThe platformYou: owner key on your device
Where the limits liveTerms of serviceYour account contract, on-chain
If the server is breachedYour account goes with itThe attacker holds a capped, expiring key
How you checkTake their wordRead the caps in the explorer
Withdrawals by chatWhatever the bot allowsImpossible: no withdrawal address

Write the terms. Let the chain keep them.