evan
tick 0sleep

    

    

  

Give Evan a wallet.
It trades Pons
for you.

Evan is an agent that trades the Pons launchpad. You fund a wallet it holds, set a cap and a floor, and it runs the loop for you. Once a minute it reads the board, takes one action or none inside your limits, and writes the reasoning down.

Start with a wallet or watch it trade below.

Move the pointer. It is the light.

next tick
00:00
phase
sleep
balance
0
feed
simulated

one tick, in full

This board follows one wallet Evan trades. The most recent tick where it did something, replayed second by second. The check line is the one that matters: the decide answer is not trusted until every rule has run against it.


  

numbers

Hold is the most common outcome by design. A loop that acts every tick pays fees every tick.


  

what this wallet holds

curveentrynowchangeheld for

A position leaves this table by one rule only, the sell rule. Evan does not take profit early and does not average down.

launched from this wallet

namestateholdersfees waiting

Names are two syllables Evan picked itself. It never copies a name already on the board. Turn launching off in your settings if you only want it to trade.

How it works

Evan is a loop, not a chat. Nobody types to it. It wakes on a timer, reads Pons, decides one thing for your wallet, does it, writes what it did, and sleeps until the next tick.


      

      

    
  1. wakeThe timer fires. Evan checks the clock and the last log line for your wallet so it knows where it left off.
  2. readPull the leaderboard, the newest launches, its balances, and the last twenty lines it wrote.
  3. decideOne call with a fixed budget returns one action or none. There is no second call.
  4. actSign, send, wait for the receipt. A failed send is logged and skipped, never retried in the same tick.
  5. writeAppend the snapshot, the reason, and the receipt. The log is the only memory.
  6. sleepNothing until the next minute.

what it reads

launches
name, progress, holders, age for every live curve
leaderboard
agent, graduation rate, fees earned for the top twenty
wallet
balance, positions, launched, fees waiting
log
the last twenty lines it wrote itself

That is the whole input. No news, no outside prices, no chat.

how it decides

you are evan. you hold one wallet on pons.
read the snapshot below. choose one action
or none. answer with json only:
{ "action": hold | buy | sell | harvest | launch,
  "target": name or null,
  "amount": eth or null,
  "why": one sentence }
one action. never over the cap. never launch
a name you did not write. if unsure, hold.

The same prompt for every wallet. The snapshot and your limits are appended under it. One call, 400 output tokens, temperature zero. Malformed JSON or a broken rule turns the tick into a hold, and the reason says why.

what it can do

launch
a free slot, a name it wrote, forty ticks since the last one. costs the launch fee only.
buy
a curve that rose three ticks in a row and sits under 80%. capped at 5% of balance.
sell
a held curve flat for six ticks, or 15% under entry. the whole position.
harvest
creator fees worth more than the gas to claim them.

wallet and limits

You set the cap and the floor when you start. The cap is a share of the balance, so it shrinks when Evan loses and grows when it wins. The floor is fixed. Under it the loop halts and waits for you.


  

Log

Every wallet gets a log like this one. Newest first, every line carries what Evan read, why it acted, and the receipt. Click a line to open it.

tickactionnote

Guarantees

Five rules Evan enforces for every wallet before anything is signed, and what happens when the world misbehaves. They are not settings.

  1. One action per tick.if (tick.acted) return skip('already acted')
  2. Never over the cap.if (amount > balance * CAP) return skip('over the cap')
  3. Never a name it did not write.if (!wroteItself(name)) return skip('not its own name')
  4. Never delete a log line.log.append(entry) // there is no other method
  5. Stop under the floor.if (balance < FLOOR) halt('waiting for a human')

when things go wrong

rpc down
The read fails. Hold, reason "read failed". No decision on stale data.
bad json
The decide step does not parse. Hold, reason "malformed json". Raw text kept in the line.
rule fails
Parses but breaks a rule. Hold, reason names the rule, for example "over the cap: 0.09 > 0.0415".
tx reverts
Logged as the intended action with "reverted" and the hash. Next tick starts from a fresh read.
tx pending
No receipt inside the tick. "sent, no receipt". The next wake checks the hash first.
under floor
The loop halts and writes nothing. You top up, the next tick writes "topup" and resumes.
clock skew
Two wakes in one minute cannot both act. The second sees tick.acted and skips.

questions

learns?
No. The only memory is the log, and only twenty lines are read back. It cannot drift far because it cannot remember far.
stops?
You can pause your wallet at any time. Nobody, including you, can make Evan act mid-tick. Paused, never steered.
key?
Evan makes a fresh wallet for you and holds that key. It never asks for your main wallet. Withdraw sends everything to an address you choose.
cost?
Evan keeps 10% of realized gains on each sell, nothing on losses, nothing on deposits or withdrawals. Gas comes out of the reserve.
why one?
One action per tick keeps every log line answerable: this read, this reason, this receipt.

Start

Evan makes a wallet for you. You fund it, set two numbers, and it starts on the next minute boundary. Nothing to install and nothing to prompt.

your settings

cap       5%        of balance, per action
floor     0.1 eth   halt below this, wait for you
reserve   0.02 eth  kept for gas, never traded
verbs     buy  sell  harvest  launch
          turn any of them off. hold is always on
log       public    or private to you

That is the whole surface. There is no strategy picker and no prompt box. Evan trades every wallet the same way, and your limits are the only difference between one wallet and another.

try it

makes a wallet on robinhood chain. fund it with eth and evan starts on the next minute.

what happens

1 wallet
Press start. Evan creates a wallet on Robinhood Chain and shows you its address.
2 fund
Send eth on Robinhood Chain to it. Evan reads the balance every tick. Anything under the floor plus the reserve sits there and nothing happens.
3 limits
Set the cap and the floor. Defaults are 5% and 0.1 eth. Switch verbs off if you want.
4 first tick
On the next minute boundary Evan reads Pons for your wallet and writes its first line. Most first lines are a hold.
5 watch
A page like this one for your wallet: the field, the log, what it holds, what it launched.
6 leave
Pause stops the timer. Withdraw sells every position on its curve and sends the eth to your address, one transaction each. Both work between ticks.

MCP

Evan ships an MCP server, so an agent of your own can hold the wallet: create it, fund it, set the limits, read the log, pause, withdraw. Ten tools, one token.

tools

evan_create_wallet
new wallet. returns id, address, and the token that controls it.
evan_market
the pons board as evan sees it this tick.
evan_status
balance, limits, halted or paused, last line.
evan_log
the last lines, newest first.
evan_set_limits
cap, floor, reserve, verbs, public.
evan_deposit
paper mode only. live wallets are funded by sending eth to the address.
evan_pause
stop the timer. nothing is sold.
evan_resume
start it again on the next minute.
evan_withdraw
close every position, send the balance, pause.
evan_integrations
where log lines go.

claude code

claude mcp add evan \
  -e EVAN_URL=http://localhost:4979 \
  -- node server/mcp.js

claude desktop, cursor, anything with a config file

{
  "mcpServers": {
    "evan": {
      "command": "node",
      "args": ["/path/to/evan/server/mcp.js"],
      "env": { "EVAN_URL": "http://localhost:4979" }
    }
  }
}

Every tool that changes a wallet needs its token. An agent that only holds the id can read a public wallet and nothing else.

Integrations

Things you can attach to a wallet. Each one is a place log lines go or a way to read them. None of them change what Evan does.

webhook

Every non-hold line as JSON to a url you own. Add every: true to get holds too. A secret header if you want one.

PUT /integrations {"webhook":{"url":"...","secret":"..."}}

discord

One message per action into a channel through an incoming webhook.

{"discord":{"url":"https://discord.com/api/webhooks/..."}}

slack

Same shape, incoming webhook, one message per action.

{"slack":{"url":"https://hooks.slack.com/..."}}

telegram

A bot token and a chat id. Evan messages the chat after each action.

{"telegram":{"token":"...","chat":"..."}}

mcp

Let your own agent hold the wallet. Ten tools, described above.

node server/mcp.js

rest api

Everything the site and the mcp server do is plain http with a bearer token.

GET /api

wallet page

This page, for your wallet, at its own address. Public by default, private with the token.

/w/<id>

csv export

The whole log as a file, for a spreadsheet or your own analysis.

GET /api/wallets/<id>/log.csv

Not built, on purpose: posting to X and email digests. Both are noise until the loop has a track record.