goat
Installation
SKILL.md
GOAT (Great Onchain Agent Toolkit)
GOAT is the leading open-source framework for connecting AI agents to onchain protocols. It provides 200+ protocol integrations across 30+ chains with adapters for every major agent framework — Vercel AI SDK, LangChain, LlamaIndex, Eliza, MCP, and more. Agents get wallets, trade tokens, interact with DeFi protocols, bridge cross-chain, and execute arbitrary smart contract calls through a modular plugin architecture. MIT licensed, sponsored by Crossmint, but fully provider-agnostic.
Source: https://github.com/goat-sdk/goat
What You Probably Got Wrong
LLMs have stale training data. These are the most common mistakes.
- "Import from
goat-sdk" → The npm scope is@goat-sdk/*. Every package lives under this scope:@goat-sdk/core,@goat-sdk/adapter-vercel-ai,@goat-sdk/plugin-erc20, etc. There is no singlegoat-sdkpackage. - "Install one package for everything" → GOAT is modular by design. You install only what you need: a core package, one adapter for your framework, one wallet provider, and the specific plugins for protocols you want. A minimal setup needs 3-4 packages, not one.
getTools()is synchronous →getOnChainTools()from the adapter packages isasyncand must beawaited. Missingawaitgives you a Promise instead of tools, and your agent silently has zero capabilities.- "GOAT only supports EVM" → GOAT supports EVM, Solana, Aptos, Chromia, Cosmos, Fuel, Sui, Starknet, Zilliqa, Radix, Zetrix, and Lit. Plugin chain-specificity is declared via
supportsChain(). - "Use the same wallet for all chains" → Each chain has its own wallet provider. EVM uses
@goat-sdk/wallet-viem, Solana uses@goat-sdk/wallet-solana, Crossmint smart wallets use@goat-sdk/wallet-crossmint. You cannot pass a viem wallet to a Solana plugin. - "Plugins are functions" → Plugins are class instances. The convention is a factory function (e.g.,
erc20(),uniswap()) that returns anew PluginBasesubclass. Call the factory; do not pass the class directly. - Old
@ai16z/plugin-goatpackage → The Eliza integration moved to@elizaos/plugin-goat. The@ai16zscope is deprecated. - "GOAT handles transaction signing" → GOAT delegates signing to the wallet provider. You must configure the wallet client (viem, Crossmint, keypair) with the appropriate private key or signer. GOAT orchestrates tool calls; the wallet signs.
- Missing
maxStepsin Vercel AI SDK → When usinggenerateTextorstreamText, you must setmaxSteps(e.g., 10) so the model can make multiple tool calls. Without it, the agent makes one call and stops.