the leash

Limits a skee cannot cross, even when it's wrong.

Anyone can build a bot that trades. The hard part is a bot you'd leave alone. The leash is a set of constraints checked by the runtime at signing time, outside the errand's code. If a check fails, the transaction is never signed.

The six limits.

spend cap

Maximum value moved per run and per day, in USD terms at execution. Above it, the runtime refuses to sign. There is no override flag.

cap_per_run: $25
cap_per_day: $100

allowed assets

An explicit list. Any transaction touching an asset outside it is refused, including intermediate swap legs.

assets: [TSLAx, USDC]

allowed hours

Optional window in a timezone. Outside it the skee does not wake at all; a triggered wake is deferred to the window.

hours: 09:30–16:00
tz: America/New_York

kill switch

One signature from the owner stops all runs, cancels open orders and freezes the skee. Resuming needs a second signature. The skee cannot un-kill itself.

skee kill <id>

slippage & price band

Max slippage per trade, and an optional "do nothing if the price moved more than X% since last run".

max_slippage: 0.5%
skip_if_moved: 3%

receipts

Not a limit, but part of the leash: every run writes what it saw, decided and did. No receipt, no next run.

receipt: required

How enforcement works.

A skee's keys never live in the errand. The errand produces an intent: "swap 25 USDC for TSLAx, max slippage 0.5%". The runtime simulates the intent, computes its USD value and touched assets, checks every leash rule, and only then signs.

The check happens on the simulated result, not on what the errand claims. An errand that says "$25" but would move $250 is refused on the simulation.

intent swap 25 USDC → TSLAx · max_slip 0.5% sim value $25.00 · assets [USDC, TSLAx] · slip 0.04% leash cap ok · assets ok · hours ok · slip ok sign 0x8a1f… · broadcast · included
intent buy 50 RIVNx sim value $50.00 · assets [USDC, RIVNx] leash assets: RIVNx not allowed refuse receipt: "wanted to buy RIVNx, leash said no, did nothing"

What the leash does not protect against.

A leash bounds how much a skee can lose per run and per day. It does not make an errand a good idea. A DCA into a falling asset will keep buying, inside its cap, until you kill it. That is the errand doing exactly what you asked.

The leash also cannot protect against a compromised owner key. If someone can sign as you, they can change the leash. Use a hardware key or a multisig as the owner.