Operating the platform

For whoever runs platform/main.mjs. Read custody and trust first: the operator holds the keys of every hosted agent.

What runs

One Node process (node platform/main.mjs) does everything:

Environment

VariableDefaultMeaning
PORT6130HTTP port.
PLATFORM_SEEDa file64 hex characters. If unset, data/platform/seed.hex is created at first start. Back it up.
ANTHROPIC_API_KEYnoneThe model key. Without it hosted agents hold: no model call is made and nothing is traded in the name of a mandate.
ALLOWED_MODELSclaude-haiku-4-5-20251001Comma separated list offered on the launch page.
MAX_MODEL_USD_PER_DAY5A global daily cap on model spend across all agents. When reached, agents hold until the next UTC day.
PINATA_JWTnoneA Pinata API token. With it, uploaded logos are pinned to IPFS so Pons can display them; the platform checks that Pinata reports the CID it computed itself. Without it, logos show on Mandate only and the launch page says so.
OPERATOR_PAYOUTnoneAddress that receives the model-bill reimbursement. Empty: no reimbursement, the operator absorbs the bill.
GAS_SPONSOR_KEYnoneA funded key that tops up an agent wallet's gas (0.002 ETH, at most 3 times) when fees are waiting and gas is short.
ADMIN_TOKENnoneBearer token for the pause, resume and flatten endpoints.
RPCthe public RPCAnother RPC endpoint.
DATA_DIRdata/platformPrivate data: the seed and the registry.
PUBLIC_DATA_DIRsite/dataPublic data: everything under /data/.
REFERENCE_AGENTSbaselineComma separated reference agents from agents/*.json.

Deploying

A Dockerfile is provided; the container runs node platform/main.mjs. On Render, create a Web Service from the repository with:

The site and the data are served by the same process, so the domain points at the service.

Backups

Two things must be backed up and nothing else matters as much:

  1. The seed. PLATFORM_SEED, or data/platform/seed.hex.
  2. The registry and ledgers. data/platform/registry.json and public/<id>/state.json. The registry maps every agent to its index; a ledger holds the deposits and the high-water mark.

Day to day

`` node platform/rescue-agent.mjs <agentId> <address> # preview node platform/rescue-agent.mjs <agentId> <address> --yes # send `` It sends USDG, the four stocks, WETH and the ETH minus gas to the address.

Costs

The model bill is the only recurring cost: about a third of a cent per call with Claude Haiku 4.5 and about 40 calls a day per funded agent when it holds, so a few dollars a month per agent. An agent with no capital makes no call. The daily cap is a safety net, not an expectation.

Limits to know