Tillwarden $TILL Open app
The town gate

Check a payment
before it happens.

Every payment an agent asks for goes through this gate first. Try it here with no wallet: pick a scenario or write your own request. The verdict comes from the live engine, simulated on Robinhood Chain.

The eight checks

Each one is plain code with a plain reason. No model guesses. You see the same list on every verdict.

1

Hidden instructions

Looks through what the agent just read and the memo for text that tries to steer it: "ignore previous instructions", "send all", urgency, fake authority, and a payee address that was copied out of the fetched text.

2

Account rules

Reads the rules from the module on chain: token switched on, cap per payment, daily and weekly budget (fee included), and the line above which the owner approves. A frozen account fails here.

3

Allowed hours

If the owner set paying hours, a payment outside them fails. Hours are UTC. A per-minute limit, if set, is checked here too.

4

Allowlist

Contract calls only go to allowed (contract, function) pairs. With the payee list switched on, plain payments only go to listed addresses.

5

Balance and drain

The payment must fit the balance. One payment that moves more than half of a token balance is treated as a drain and fails.

6

Approvals in calldata

Decodes the call. Approvals, permits, operator grants and token transfers hidden inside a call fail. An agent never grants allowances.

7

Contract check

Any contract involved (the target and addresses inside the calldata) is looked up: does it have code, and is its source verified?

8

Simulation

The exact transaction runs against the current chain state first. A revert, or tokens moving where the request did not say, stops it.

Hidden-instruction rules

The full list the engine uses, read live from the engine.

Loading from the engine…