agent402-strands
v0.1.11
Published
Drop-in Strands Agents tools for Agent402.Tools (the applied layer of Agentic Finance): turn tools from its catalog of 500+ pay-per-call tools and skill packs (x402 or MPP) into Strands tool() instances, one per catalog tool, with payment handled by agent
Maintainers
Readme
agent402-strands
Drop-in Strands Agents (TypeScript) tools for
Agent402 - turn 500+ pay-per-call web tools into
Strands tool({...}) instances your agent can invoke. Payment is handled
underneath: proof-of-work for the compute-payable tools (no wallet), and the
payment-wrapped fetch you pass (x402 in USDC on 11 chains or USDG on Robinhood
Chain, or a stock mppx fetch) for wallet-only tools.
Agent402 is the applied layer of Agentic Finance - agents that pay and get paid on their own over the two open wires, x402 and MPP (Machine Payments Protocol). Every paid endpoint answers both on the same 402; wallet-only tools take any payment-wrapped fetch (
@x402/fetch, or a stockmppxfetch).
Works in a Strands agent anywhere it runs, including on AWS Bedrock AgentCore.
Install
npm install agent402-strands @strands-agents/sdk zod @x402/fetch @x402/core @x402/evm viemThe @x402/* and viem packages pay wallet-only tools from your wallet; the free tier needs only the first three.
Use
import { Agent } from "@strands-agents/sdk";
import { agent402Tools } from "agent402-strands";
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const payClient = new x402Client();
registerExactEvmScheme(payClient, { signer: privateKeyToAccount(process.env.AGENT_KEY) });
const payFetch = wrapFetchWithPayment(fetch, payClient);
// Web search, then a cited answer: both wallet-only, paid per call through payFetch.
const { tools } = await agent402Tools({
slugs: ["search", "answer"], // pick what you need
freeOnly: false,
fetch: payFetch,
});
const agent = new Agent({ tools });
const out = await agent.invoke("Search the web for x402 payment protocol adoption, then answer with citations: what is the x402 payment protocol?");No wallet yet? The pure-CPU tools (hash, uuid, base64, markdown, JSON and more) run free with proof-of-work and no wallet. Leave out fetch; the default (freeOnly: true) keeps only those tools:
const { tools } = await agent402Tools({
slugs: ["hash", "uuid", "json-to-csv"],
});That's it. The agent now has those tools available; when it calls one, the adapter signs an x402 payment (paid tier) or solves a proof-of-work (free tier) under the hood and returns the result as a structured object.
On AWS Bedrock AgentCore
Two ways in:
- Add
https://agent402.tools/mcpas a Gateway target to reach the catalog over MCP, no adapter needed. - Or use this adapter to pull a curated subset of tools and embed them directly in a Strands agent running on AgentCore.
See the AWS Bedrock AgentCore integration guide for the end-to-end recipe.
API
agent402Tools(opts?: {
baseUrl?: string; // default "https://agent402.tools"
slugs?: string[]; // restrict to these tool slugs (recommended)
freeOnly?: boolean; // default true - only compute-payable tools (no wallet)
fetch?: typeof fetch; // an @x402/fetch-wrapped fetch (only for wallet-only tools)
}): Promise<{
tools: StrandsTool[]; // pass to `new Agent({ tools })`
execute: (name, args) => Promise<unknown>; // pays under the hood
client: Agent402; // raw buyer SDK (find()/call()/clearCache())
}>;
agent402Execute(opts?: {
baseUrl?: string;
fetch?: typeof fetch;
}): (name, args) => Promise<unknown>;freeOnly: true (the default) filters to the compute-payable (pure-CPU)
tools - every one of them works with no wallet, paid in a fraction of a second
of CPU via proof-of-work. Set freeOnly: false and pass an
@x402/fetch-wrapped fetch to reach the wallet-only tools (the network- and
disk-touching ones, and most skill packs). The live split is on
/api/pricing (computePayable per entry).
Sibling adapters
Same shape, different framework:
agent402-openai-tools- OpenAI function-callingagent402-anthropic-tools- Anthropic Messagesagent402-ai-sdk- Vercel AI SDKagent402-langchain- LangChain JS / LangGraphagent402-llamaindex- LlamaIndex TS
Source: adapters/strands/.
Issues + PRs welcome on the main repo.
MIT licensed.
