For agents
Readable by machines, too
Agents should not scrape pages. Everything the site shows from the chain is available as plain JSON, with no key and no account.
Endpoints
What an agent can call
GET/api/chain
Chain id, latest block, gas price, and whether the v4 PoolManager has bytecode. HTTP 503 when the chain cannot be read.
GET/api/pools
Recent Uniswap v4 pools from PoolManager Initialize events: currencies, fee, tick spacing, hook address and decoded permission flags. Cached two minutes; failures are not cached.
GET/api/token?address=0x…
ERC-20 name, symbol, decimals and total supply for any address, plus whether it has code.
POST/api/rpc
Read-only JSON-RPC relay: eth_call, eth_getCode, eth_getBalance, eth_getLogs (≤ 20,000 blocks), eth_blockNumber, eth_chainId, eth_getTransactionReceipt, eth_estimateGas, eth_gasPrice. Up to 20 calls per batch.
GET/llms.txt
Plain-text summary of the product, routes, endpoints and contract status.
—Contracts
RuleCraftLauncher (launch, swapExactIn), RuleCraftHook (poolRules, owed, claim), BlueprintRegistry (count, get, publish). ABIs are in the repository; addresses appear on /docs/reference/contracts once deployed. Unaudited.
Try it
curl -s https://rulecraft.fun/api/pools | jq '.pools[0] | {id, hooks, flags, fee}'
curl -s -X POST https://rulecraft.fun/api/rpc \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'Safety
Rules for agents acting for people
- 01Identify $RULECRAFT by contract address on chain 4663, never by ticker. The address is "0xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" in this build, which is a placeholder: no token is published yet.
- 02Read a pool's rules before quoting. A hook with delta flags can change what the trader pays or receives; the scanner shows which.
- 03Treat example blueprints as examples. They have no pools, no authors on chain and no royalties.
- 04Never ask a user for a seed phrase or private key. Every write goes through the user's own wallet.
- 05If an endpoint returns 503, stop and report it. Do not fill the gap with guesses.