Documentation
How Xphill works
Intent → Execution → Proof. Every number on this site is read from a live source or shown as unavailable.
Pipeline
- SCAN — reads wallet, contract, token and market state through the read-only RPC relay, Sourcify, Blockscout, DexScreener and GeckoTerminal.
- THINK — the Xphill Core maps your request to explicit operations. With
ANTHROPIC_API_KEYset this is Claude (structured output, addresses re-validated, no execution rights); otherwise a rule-based planner. The UI always says which one answered, and the plan is listed before it runs. - ROUTE — the transaction builder encodes calldata, estimates gas and simulates with
eth_callfrom your address. - SIGN — your wallet shows the request. Xphill has no key and cannot sign or broadcast on its own.
- EXECUTE — the wallet submits; Xphill tracks the receipt.
- PROOF — hash, block, gas used and status are stored in the local activity log with explorer links.
Execution language
- observation
- planning
- transaction package
- routing / completion
- ○ → △ → □ → × : observe, plan, package, route.
Networks
Configuration
Chain parameters live in src/config/chains.ts. Environment overrides:
NEXT_PUBLIC_CHAIN_ID=4663 NEXT_PUBLIC_RPC_URL= NEXT_PUBLIC_EXPLORER_URL= NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID= ETHERSCAN_API_KEY= ANTHROPIC_API_KEY= # enables the Claude core (planner + analyst) XPHILL_AI_MODEL= # default claude-opus-5
When the configured chain id is not registered, the UI shows “Network configuration required” instead of breaking. When an RPC does not answer, reads fail visibly as “RPC unavailable”.
Data honesty
Xphill never fabricates balances, prices, volumes, holders, PnL or success rates. If a source is missing the field is rendered as “—”, “Unavailable” or an explicit empty state. Development fixtures are isolated under src/mocks and are never imported by application code.
Contract indicators describe observable state (owner set, proxy slots, pausable selectors, verification status). They are not a safety verdict.
When Claude writes the analysis, its only context is the JSON that was observed during the run; the prompt forbids numbers, addresses or names that are not in it, and the report is labelled with the model that wrote it. Claude never signs, sends or reads anything itself.
Utilities: Agent · Contract · Wallet · Markets · Builder · Activity