GOAT is free software, MIT licensed, sponsored by Crossmint

What is GOAT 🐐?

GOAT 🐐 (Great Onchain Agent Toolkit) is an open-source framework for adding blockchain tools such as wallets, being able to hold or trade tokens, or interacting with blockchain smart contracts, to your AI agent.

Problem:

Making agents perform onchain actions is tedious. The ecosystem is heavily fragmented, spanning 5+ popular agent development frameworks, multiple programming languages, and dozens of different blockchains and wallet architectures.

For developers without blockchain expertise, finding clear instructions to perform simple actions - like sending USDC payments or placing Polymarket bets - is nearly impossible.

Solution:

GOAT solves this by providing an open-source, provider-agnostic framework that abstracts away all these combinations.

  • For agent developers: GOAT offers an always-growing catalog of ready made blockchain actions (sending tokens, using a DeFi protocol, …) that can be imported as tools into your existing agent. It works with the most popular agent frameworks (Langchain, Vercel’s AI SDK, Eliza, etc), Typescript and Python, 30+ blockchains (Solana, Base, Polygon, Mode, …), and many wallet providers.
  • For dApp / smart contract developers: develop a plug-in in GOAT, and allow agents built with any of the most popular agent develoment frameworks to access your service.

Key features

  1. Works Everywhere: Compatible with Langchain, Vercel’s AI SDK, Eliza, and more.
  2. Wallet Agnostic: Supports all wallets, from your own key pairs to Crossmint Smart Wallets and Coinbase.
  3. Multi-Chain: Supports EVM chains and Solana (more coming 👀).
  4. Customizable: Use or build plugins for any onchain functionality (sending tokens, checking wallet balance, etc) and protocol (Polymarket, Uniswap, etc).

How it works

GOAT plugs into your agents tool calling capabilities adding all the functions your agent needs to interact with blockchain protocols.

High-level, here’s how it works:

1

Configure the wallet you want to use

Each wallet will have their specific client, e.g viem(wallet) for EVM key pairs or smartwallet(wallet) for Crossmint smart wallets.

const wallet = ...

const tools = getOnChainTools({
  wallet: viem(wallet),
})
2

Add the plugins you need to interact with the protocols you want

const wallet = ...

const tools = getOnChainTools({
  wallet: viem(wallet),
  plugins: [
    sendETH(),
    erc20({ tokens: [USDC, PEPE] }),
    faucet(),
    polymarket(),
    // ...
  ],
})
3

Connect it to the agent framework you want

const wallet = ...

const tools = getOnChainTools({
  wallet: viem(wallet),
  plugins: [ 
    sendETH(),
    erc20({ tokens: [USDC, PEPE] }), 
    faucet(), 
    polymarket(), 
    // ...
  ],
})

// Vercel's AI SDK
const result = await generateText({
    model: openai("gpt-4o-mini"),
    tools,
    maxSteps: 5,
    prompt: "Send 420 ETH to ohmygoat.eth",
});

Ready to get started?

GOAT to start somewhere