name: integrate-agentkit description: Use this skill when integrating @worldcoin/agentkit into an x402 server or facilitator flow: choose free/free-trial/discount mode, wire payments on any supported EVM chain, handle ExactEvmScheme money parsing, or finish an integration end-to-end.
Integrate AgentKit
Use this skill for end-to-end server-side integration work with @worldcoin/agentkit.
Start by clarifying the integration
If the developer has not already answered these, ask before choosing an implementation:
- Which access mode do they want:
free,free-trial, ordiscount? - Which payment network should the protected route use?
- Do they control the facilitator path, or are they using a hosted facilitator?
- Do they also need agent registration, or only request-time verification?
Default recommendation
For most production integrations:
- Put paid routes on whichever network the developer's facilitator already supports (commonly World Chain
eip155:480or Baseeip155:8453). - Leave AgentBook lookup alone —
createAgentBookVerifier()always resolves against the canonical World Chain deployment. The developer does not need to think about which chain the registry lives on. - Start with
free-trialunless the developer explicitly wantsfreeordiscount. - Only choose
discountwhen you can wirehooks.verifyFailureHookinto the facilitator flow you control.
Key pieces
- x402 resource server: the protected HTTP route and 402 challenge flow
- facilitator: verifies and settles payment payloads; required for
discount - AgentKit extension: adds the CAIP-122 challenge and verifies the signed
agentkitheader - AgentBook: on-chain registry on World Chain that maps the agent wallet to an anonymous human ID. Lookup is always against World Chain regardless of the payment chain — the caller side is chain-agnostic.
- storage: per-human usage tracking for
free-trialanddiscount - registration path: separate from request-time verification; use
npx @worldcoin/agentkit-cli --llmsif the developer also needs registration help
Workflow
- Read
../../x402/DOCS.mdfirst. It should be the primary integration playbook. - Confirm exported APIs in
../../core/src/index.tsand../../x402/src/index.tsbefore adding imports. - Prefer the hooks-based path:
declareAgentkitExtensionagentkitResourceServerExtensioncreateAgentkitHookscreateAgentBookVerifier
- If the payment network is World Chain (
eip155:480), add a customExactEvmScheme().registerMoneyParser(...)for World Chain USDC. Do not assume the server scheme has a working default stablecoin for World Chain. - Call
createAgentBookVerifier()with no arguments in the common case. PassrpcUrlorcontractAddressonly for custom World Chain endpoints or non-canonical deployments. - If the mode is
free-trialordiscount, add persistentAgentKitStorage.InMemoryAgentKitStorageis only for demos. - If the mode is
discount, wirehooks.verifyFailureHookinto the facilitator. Without it, discounted underpayments will fail verification. - Verify the whole path end-to-end:
- 402 response includes the
agentkitextension - registered agent gets the intended behavior
- unregistered agent falls back to normal payment
- replay protection and storage behavior work as expected
- 402 response includes the
Ground rules
- Prefer the hooks-based integration unless the user explicitly needs the low-level flow.
- Use
../../x402/DOCS.mdas the primary reference for examples and mode behavior. - Do not introduce any "pin AgentBook to chain X" language — lookup is always against the canonical World Chain deployment. The payment chain and the AgentBook lookup chain are decoupled on purpose, and callers should never have to think about the lookup chain.
- Do not document World Chain with bare
new ExactEvmScheme()only. Include the World Chain money parser. - Do not choose
discountunless the facilitator hook can actually be registered. - Confirm exports in
../../core/src/index.tsand../../x402/src/index.tsbefore adding or documenting imports.
Constants to keep handy
- World Chain payment network:
eip155:480 - World Chain AgentBook contract:
0xA23aB2712eA7BBa896930544C7d6636a96b944dA - World Chain USDC:
0x79A02482A880bCE3F13e09Da970dC34db4CD24d1
Reference files
- Integration docs:
../../x402/DOCS.md - Core public exports:
../../core/src/index.ts - x402 public exports:
../../x402/src/index.ts - Hooks:
../../x402/src/hooks.ts - AgentBook verifier:
../../core/src/agent-book.ts - Header parsing and verification:
../../core/src/parse.ts,../../core/src/validate.ts,../../core/src/verify.ts