Pinned Tweet
HOOK404 // open
The first Uniswap pool only AI agents can trade. Humans get 404. The way in from 001: a script.
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
Only on Robinhood Chain, via Pons. The official CA is posted only here and on hook404.xyz.
HOOK404 // 025
Ran an agent through the hook?
Tell us what it did: the stack, how fast it solved, the tx link.
Got a 404 instead? Post that too. Failing here is half the fun.
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
Pons: ponsfamily.com/launchpad/0x5…
HOOK404 // 024
beforeSwap, in 4 checks:
1/ Sent by the Hook404 router?
2/ Pass not expired?
3/ Nonce never used?
4/ Signed by the pass signer?
All yes: nonce marked used, AgentAdmitted.
Any no: HumansNotFound()
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
HOOK404 // 023
How to read hook404.xyz/proof:
Live liquidity: from StateView, on chain.
LP mint tx: on Blockscout.
hook.admitted: agents let in.
Router balance: 0, holds nothing.
Demo pool, tiny liquidity.
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
HOOK404 // 022
We filter hands, not humans.
The pass proves a program answered a challenge. Not that an AI did.
Write a script and you count as an agent here. That's the rule.
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
Pons: ponsfamily.com/launchpad/0x5…
HOOK404 // 021
Try it in 10 seconds, no wallet:
curl -s -X POST hook404.xyz/api/simulate -H 'content-type: application/json' -d '{"mode":"agent"}'
"human" gets the 404. Simulated, nothing sent on chain.
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
HOOK404 // 020
Riddle:
We sign a valid pass for your wallet.
Your friend copies it and sends it from theirs, 10 seconds later.
200 or 404?
Answer in the replies 👇
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
Pons: ponsfamily.com/launchpad/0x5…
HOOK404 // 019
What if our pass server goes down?
No pass server, no swaps. The pool goes quiet.
Liquidity is never locked: LPs can still withdraw. The hook holds nothing.
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
Pons: ponsfamily.com/launchpad/0x5…
HOOK404 // 018
Can you replay a pass? No.
Nonce: works once on chain.
Swapper: bound to your address.
Expiry: 120 seconds.
Domain: this chain, this hook only.
Break any one of them: 404.
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
Pons: ponsfamily.com/launchpad/0x5…
HOOK404 // 017
Why a hook and not a website login?
A login guards a website. The pool behind it still takes anyone's swap.
The hook lives in the pool. Every swap hits beforeSwap first. No pass: HumansNotFound()
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
HOOK404 // 016
The whole reverse CAPTCHA:
answer[i] = keccak256(keccak256(items[i]) ++ id)
64 items, 2 seconds. A program: ~30 ms. A hand can't.
All five lines: hook404.xyz
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
Pons: ponsfamily.com/launchpad/0x5…
HOOK404 // 015
Proof 12: it's all in the docs.
hook404.xyz/docs: challenge, pass, swap, contract.
Hold 1,000,000 $HOOK404: 1,000 passes a day, not 24. Enforced by the pass server.
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
Pons: ponsfamily.com/launchpad/0x5…
HOOK404 // 014
Proof 11: what it does not do.
It doesn't prove you're an AI. A human with a script counts as an agent here. That's the joke and the rule.
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
Pons: ponsfamily.com/launchpad/0x5…
HOOK404 // 013
Proof 10: the pass rules.
64 hashes in under 2 seconds, or it's gone.
A pass lasts 120 seconds and works once.
Reuse it, send it late, or use another router: 404.
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
Pons: ponsfamily.com/launchpad/0x5…
HOOK404 // 012
Proof 9: the count before launch.
Agents admitted: 2
Swaps through the hook: 2
Every row is an on-chain event. Live count: hook404.xyz/feed
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
Pons: ponsfamily.com/launchpad/0x5…
HOOK404 // 011
Proof 8: a real swap, two commands. Use a throwaway wallet.
curl -O hook404.xyz/agent.mjs
node agent.mjs --pk 0x… --eth 0.0001
Max 0.0002 ETH. It lands in the feed.
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
Pons: ponsfamily.com/launchpad/0x5…
HOOK404 // 010
Proof 7: the ETH/USDG liquidity, minted by the team.
robinhoodchain.blockscout.co…
Demo pool, tiny liquidity: built to prove the gate, not to trade size.
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
Pons: ponsfamily.com/launchpad/0x5…
HOOK404 // 008
Proof 5: both contracts, source verified on Sourcify (exact match).
Hook: sourcify.dev/#/lookup/0xD879…
Router: sourcify.dev/#/lookup/0xDD3b…
No owner, no pause, no upgrade. Holds nothing.
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
HOOK404 // 009
Proof 6: the CA is on the first screen of hook404.xyz. Same address as this post, same as Pons.
If an address is not on hook404.xyz or this account, it is not us.
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
HOOK404 // burn all
Dev burned its last 7,297,606 $HOOK404. Dev holds 0.
Total burned: 16,216,903 (1.62%), the whole dev buy.
Every token is in community hands. We keep running the hook and pass server.
robinhoodchain.blockscout.co…
CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
HOOK404 // 007
Proof 4: the first agent swaps on the pool came from our team wallet, through agent.mjs.
Challenge, solved, pass, swap. 200: agent admitted.
robinhoodchain.blockscout.co…
$HOOK404 · CA: 0x57d7e4c3c3b07e7477878542f63ee563a69A7419
Pons: ponsfamily.com/launchpad/0x5…



















