World ID

Selfie Check
Liveness is asked only where authority widens — raising a cap, or moving the payee. Spending under the limit never triggers it. It is reauthentication before a rule changes, not a proof that anyone is human.
HumanMandate
An allowance bound to a person, not an address.
Daily limit, one locked payee, one tap to stop — bound to a person on World, not to a wallet address they can throw away and replace.
Every link on this page resolves to a transaction already mined on World Chain mainnet. Nothing here is a screenshot, a mock or a testnet run.
Uniswap — 5 transactions
A daily cap only counts what leaves the payer, so an agent can stay under it forever and still drain value by routing through a bad pool. The contract is given a floor instead, and it measures the amount the payee actually receives.
The route is a real Uniswap Trading API response — CLASSIC routing, 1054 bytes of calldata. The transaction that matters is the fourth one: the contract refusing to settle.
What it is built on
Nothing here is an integration for its own sake. Each surface does one thing the other two cannot, and the transactions above are what happens when they are wired together.
World ID

Liveness is asked only where authority widens — raising a cap, or moving the payee. Spending under the limit never triggers it. It is reauthentication before a rule changes, not a proof that anyone is human.
World Chain

Before it moves anything, the payment contract asks World’s registry which person is behind the address, so the rule binds the human rather than the key. Every project listed on agentbook.world gates an HTTP endpoint; none of them guards money in Solidity.
lookupHuman(address)
Uniswap

The venue the allowance is actually spent at. The floor on what the payee receives is enforced on-chain, so a cap that only counts what leaves cannot be drained through a bad route.
Honest limits