Migrating to AgentKit 1.0
August 10, 2026 · View on GitHub
1.0 is additive — existing self-custody code keeps working. The headline is a new platform mode (KMS-custodied wallets + payments + tools + identity) and a cleanup of the chain list and unsafe actions.
Nothing breaks if you used configureWithWallet
// still works exactly as before
const agentkit = await Agentkit.configureWithWallet({
apiKey, privateKey, chainID: 43113,
});
Your existing DeFi actions (transfers, swaps, bridges, balances, market data) are unchanged.
What's new
Agentkit.configureWithPlatform({ apiKey, agentId, chain })— the wallet is custodied by 0xGasless (AWS KMS), spending policy is enforced server-side, and you get the money / tool / trust actions. No private key in your process.- Money actions:
x402_pay,pay_api,get_spend_status,get_agent_wallet(andsmart_transfernow works in platform mode for USDC/XSGD). - Tool Gateway actions:
search_tools,call_tool,browse_web— pay per call to run Apify actors, settled by the 0xGasless facilitator on Avalanche. - Trust actions:
register_identity,check_agent_reputation,give_agent_feedback(ERC-8004). http_request— a guarded generic HTTP tool (https-only, SSRF-protected), the safe replacement for shelling out tocurl.
Breaking / behavior changes
- Chains: Fantom (250) and Moonbeam (1284) were removed. Sonic's chain
ID was corrected from
156to the real146. Avalanche (mainnet + Fuji) is the primary network; Base and BSC remain for self-custody DeFi. run_terminal_commandis disabled by default. It executed arbitrary shell commands. To keep using it, passunsafeTerminalAccess: truetoconfigureWithWallet/configureWithPlatform, and only in a sandbox you control.create_and_store_keywas removed — it stored a private key in a local SQLite file, which contradicts the custody model. (Thesqlite3andmerkletreejsdependencies are gone with it, so installs are lighter.)
Config knobs
OXGAS_TOOL_GATEWAY_URL— point the tool actions at a specific gateway (defaults to the production gateway).OXGAS_HTTP_ALLOWLIST— comma-separated hostnames; when set,http_requestmay only reach those hosts.