Skip to main content

LangChain toolkit for Axon — treasury and payment infrastructure for autonomous AI agents

Project description

langchain-axon

LangChain toolkit for Axon — treasury and payment infrastructure for autonomous AI agents.

Gives your LangChain agent 7 tools: pay, check balance, swap tokens, execute DeFi protocols, poll async requests, get vault info, and handle x402 paywalls.

Install

pip install langchain-axon

Prerequisites

Before using this toolkit, you need an Axon vault and a registered bot:

  1. Deploy a vault — Go to app.axonfi.xyz, connect your wallet, and deploy a vault. The vault is a non-custodial smart contract that holds your funds. You'll get a vault address (e.g. 0xb8e3...).

  2. Fund the vault — Send USDC (or any ERC-20) to your vault address. Anyone can deposit.

  3. Register a bot — In the dashboard, go to your vault → Bots → Add Bot. You can generate a new keypair (downloads a keystore file) or bring your own public key. Set spending limits and policies.

  4. Get the bot key — Your agent needs the bot's private key to sign payment intents. Either use the keystore file + passphrase, or export the raw private key.

Your wallet (vault owner) stays secure — the bot key can only sign intents within the policies you set. The bot never touches gas or holds funds.

Supported Chains

Mainnet

Chain ID
Base 8453
Arbitrum One 42161

Testnet

Chain ID
Base Sepolia 84532
Arbitrum Sepolia 421614

Quick Start

from langchain_axon import AxonToolkit
from langchain_anthropic import ChatAnthropic
from axonfi import Chain

toolkit = AxonToolkit(
    vault_address="0x...",
    chain_id=Chain.BaseSepolia,
    bot_private_key="0x...",
)

llm = ChatAnthropic(model="claude-sonnet-4-20250514")
agent = llm.bind_tools(toolkit.get_tools())

Keystore Authentication

toolkit = AxonToolkit(
    vault_address="0x...",
    chain_id=Chain.Base,
    bot_keystore="bot-keystore.json",
    bot_passphrase="my-secret-passphrase",
)

Environment Variables

AXON_VAULT_ADDRESS=0x...
AXON_CHAIN_ID=84532
AXON_BOT_PRIVATE_KEY=0x...
# or
AXON_BOT_KEYSTORE_PATH=bot-keystore.json
AXON_BOT_PASSPHRASE=my-secret-passphrase

Tools

Tool Description
axon_pay Send a payment from the vault
axon_balance Check vault token balance
axon_swap In-vault token rebalance
axon_execute DeFi protocol interaction (approve → call → revoke)
axon_poll Poll async payment/swap/execute status
axon_vault_info Get vault status, owner, paused state
axon_x402 Handle HTTP 402 Payment Required paywalls

Individual Tools

from langchain_axon import AxonPay, AxonBalance
from axonfi import AxonClientSync, Chain

client = AxonClientSync(
    vault_address="0x...",
    chain_id=Chain.BaseSepolia,
    bot_private_key="0x...",
)

pay_tool = AxonPay(client=client)
balance_tool = AxonBalance(client=client, chain_id=Chain.BaseSepolia)

Full Agent Example

import os
from langchain_axon import AxonToolkit
from langchain_anthropic import ChatAnthropic
from langchain_core.messages import HumanMessage, SystemMessage, ToolMessage
from axonfi import Chain

toolkit = AxonToolkit(
    vault_address=os.environ["AXON_VAULT_ADDRESS"],
    chain_id=Chain.BaseSepolia,
    bot_private_key=os.environ["AXON_BOT_PRIVATE_KEY"],
)

tools = toolkit.get_tools()
llm = ChatAnthropic(model="claude-sonnet-4-20250514", temperature=0)
llm_with_tools = llm.bind_tools(tools)

messages = [
    SystemMessage(content="You are an AI agent with an Axon payment vault."),
    HumanMessage(content="Check my USDC balance then send 1 USDC to 0xRecipient"),
]

# Agent loop
while True:
    response = llm_with_tools.invoke(messages)
    messages.append(response)

    if not response.tool_calls:
        print(response.content)
        break

    for call in response.tool_calls:
        tool = next(t for t in tools if t.name == call["name"])
        result = tool.invoke(call["args"])
        messages.append(ToolMessage(content=result, tool_call_id=call["id"]))

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langchain_axon-0.1.2.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

langchain_axon-0.1.2-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file langchain_axon-0.1.2.tar.gz.

File metadata

  • Download URL: langchain_axon-0.1.2.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for langchain_axon-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e5fdab079baa2933b76dab4ad68df1f78ee90f277f54cf38f47f911fb16f2ae8
MD5 5f69c89937ee1870c097d1cccdca430a
BLAKE2b-256 54be111a6dd793a92714844ef0c13d74418321d7d2fcda6a3057366c77151d6e

See more details on using hashes here.

File details

Details for the file langchain_axon-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: langchain_axon-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for langchain_axon-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c8264b95c2fc620612aea2fa90a15c45c9c2d46c285fbe85abf5b33bbfb1e276
MD5 1a595327b103123a09d6b8563597fb8b
BLAKE2b-256 a48a7fdc621067166cbd0b7bb9eaf2216739e359982546fbb7cf3e693de723a7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page