跳到主要内容

handling-transactions 标准

Token transactions and wallet integration for XMTP agents. Use when sending USDC, creating transaction requests, or handling transaction confirmations. Triggers on USDC transfer, wallet calls, or transaction reference.

在 GitHub 打开

安装方式

cp -r skills/handling-transactions ~/.claude/skills/handling-transactions

把该 skill 目录放进客户端 skills 目录。不同客户端的目录可能不同,Claude Code 默认是 ~/.claude/skills/

整仓一次性获取:git clone --depth 1 https://github.com/xmtplabs/xmtp-agent-examples.git

依赖与权限

  • 无需 API Key
  • 无需联网
  • 无外部命令依赖
  • 以上为按正文与 frontmatter 自动推断的信号,仅供参考;安装前建议先阅读原文。
触发场景
sending USDC

SKILL.md 正文

来源 xmtplabs/xmtp-agent-examples@8116b7f · 许可 MIT · 内容未修改

XMTP transactions

Send and receive token transactions using wallet_sendCalls (EIP-5792) specification.

When to apply

Reference these guidelines when:

  • Sending USDC or other tokens
  • Creating transaction requests
  • Handling transaction confirmations
  • Checking token balances
  • Working with smart contract wallets

Rule categories by priority

PriorityCategoryImpactPrefix
1SendCRITICALsend-
2ReceiveCRITICALreceive-
3BalanceHIGHbalance-

Quick reference

Send (CRITICAL)

  • send-usdc-transfer - Create USDC transfer requests
  • send-wallet-calls - Send wallet_sendCalls messages

Receive (CRITICAL)

  • receive-transaction-reference - Handle transaction confirmations

Balance (HIGH)

  • balance-check - Check USDC balance

Supported networks

NetworkChain IDUSDC Address
Base Sepolia845320x036CbD53842c5426634e7929541eC2318f3dCF7e
Base Mainnet84530x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Quick start

Use the SDK 2.2.0 transaction helpers with viem chains and bigint amounts:

import {
  createERC20TransferCalls,
  getERC20Balance,
  getERC20Decimals,
  validHex,
} from "@xmtp/agent-sdk";
import { formatUnits, parseUnits } from "viem";
import { base, baseSepolia } from "viem/chains";

const CHAIN = baseSepolia; // or base for mainnet
const USDC_ADDRESS = "0x036CbD53842c5426634e7929541eC2318f3dCF7e"; // Base Sepolia

// Get decimals (e.g. 6 for USDC)
const decimals = await getERC20Decimals({ chain: CHAIN, tokenAddress: USDC_ADDRESS });

// Check balance (returns bigint; format for display)
const balance = await getERC20Balance({
  chain: CHAIN,
  tokenAddress: USDC_ADDRESS,
  address: validHex(address),
});
await ctx.conversation.sendText(`Your balance: ${formatUnits(balance, decimals)} USDC`);

// Create USDC transfer calls (EIP-5792)
const calls = createERC20TransferCalls({
  chain: CHAIN,
  tokenAddress: USDC_ADDRESS,
  from: validHex(fromAddress),
  to: validHex(toAddress),
  amount: parseUnits("1", decimals), // 1 USDC
  description: `Transfer 1 USDC on ${CHAIN.name}`,
});
await ctx.conversation.sendWalletSendCalls(calls);

Implementation snippets

USDC addresses (viem chains):

import { base, baseSepolia } from "viem/chains";

const CHAIN = baseSepolia; // or base
const USDC_ADDRESS = CHAIN.id === 8453
  ? "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"   // Base Mainnet
  : "0x036CbD53842c5426634e7929541eC2318f3dCF7e";  // Base Sepolia

Get ERC-20 balance (SDK 2.2.0):

import { getERC20Balance, getERC20Decimals } from "@xmtp/agent-sdk";
import { formatUnits } from "viem";

const balance = await getERC20Balance({
  chain: CHAIN,
  tokenAddress: USDC_ADDRESS,
  address: validHex(address),
});
const decimals = await getERC20Decimals({ chain: CHAIN, tokenAddress: USDC_ADDRESS });
const formatted = formatUnits(balance, decimals);

Create ERC-20 transfer calls (SDK 2.2.0):

import { createERC20TransferCalls } from "@xmtp/agent-sdk";
import { parseUnits } from "viem";

const walletSendCalls = createERC20TransferCalls({
  chain: CHAIN,
  tokenAddress: USDC_ADDRESS,
  from: validHex(senderAddress),
  to: validHex(recipientAddress),
  amount: parseUnits("2.5", 6), // 2.5 USDC
  description: "Transfer 2.5 USDC",
});
await ctx.conversation.sendWalletSendCalls(walletSendCalls);

How to use

Read individual rule files for detailed explanations:

rules/send-usdc-transfer.md
rules/receive-transaction-reference.md
rules/balance-check.md

质量与来源

所属仓库
xmtplabs/xmtp-agent-examples
仓库星标
53
最近更新
8 个月前
采集时间
今天
commit
8116b7fbd4bd
内容指纹
sha256:02a51060639ada1
文件路径
skills/handling-transactions/SKILL.md

同仓库其它 Skill

查看全部 8 个
building-agents
Core XMTP Agent SDK setup and patterns. Use when creating new agents, handling messages, setting up middleware, or configuring environment variables. Triggers on agent setup, XMTP configuration, message handling, or middleware implementation.
xmtplabs/xmtp-agent-examples 53 原文
Codex CLICursor
creating-inline-actions
Interactive button-based UI for XMTP agents following XIP-67. Use when creating menus, confirmation dialogs, selection options, or any button-based interaction. Triggers on inline actions, buttons, menus, or ActionBuilder.
xmtplabs/xmtp-agent-examples 53 原文
Codex CLICursor
handling-attachments
File attachment handling for XMTP agents. Use when sending or receiving images, files, or any encrypted remote attachments. Triggers on file upload, image sending, or remote attachment handling.
xmtplabs/xmtp-agent-examples 53 原文
Codex CLICursor
handling-commands
Patterns for handling commands, validating input, and filtering messages in XMTP agents. Use when implementing slash commands, validators, or message filters. Triggers on command handling, input validation, or type guards.
xmtplabs/xmtp-agent-examples 53 原文
Codex CLICursor
managing-groups
Group conversation management for XMTP agents. Use when creating groups, managing members, setting permissions, or sending welcome messages. Triggers on group creation, member management, or permissions.
xmtplabs/xmtp-agent-examples 53 原文
Codex CLICursor
resolving-domains
ENS and Web3 identity resolution for XMTP agents. Use when resolving domain names, extracting mentions, or fetching Farcaster profiles. Triggers on ENS resolution, Farcaster lookup, or mention extraction.
xmtplabs/xmtp-agent-examples 53 原文
Codex CLICursor

相似 Skill

更多「媒体」
release-skills
Universal release workflow. Auto-detects version files and changelogs. Supports Node.js, Python, Rust, Claude Plugin, GitHub Releases, annotated tags, historical release backfill, and generic projects. Use when user says "release", "发布", "new version", "bump version", "push", "推送", "release notes", "GitHub Release", or "回填 Release".
精选 JimLiu/baoyu-skills 2.7 万 原文
Claude CodeCodex CLI
baoyu-article-illustrator
Analyzes article structure, identifies positions requiring visual aids, generates illustrations with Type × Style × Palette three-dimension approach. Use when user asks to "illustrate article", "add images", "generate images for article", or "为文章配图".
精选 JimLiu/baoyu-skills 2.7 万 原文
Claude CodeCodex CLI
baoyu-comic
Knowledge comic creator supporting multiple art styles and tones. Creates original educational comics with detailed panel layouts and batch-capable image generation. Use when user asks to create "知识漫画", "教育漫画", "biography comic", "tutorial comic", or "Logicomix-style comic".
精选 JimLiu/baoyu-skills 2.7 万 原文
Claude CodeCodex CLI
baoyu-compress-image
Compresses images to WebP (default) or PNG with automatic tool selection. Use when user asks to "compress image", "optimize image", "convert to webp", or reduce image file size.
精选 JimLiu/baoyu-skills 2.7 万 原文
Claude CodeCodex CLI
baoyu-cover-image
Generates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 11 color palettes and 7 rendering styles. Supports cinematic (2.35:1), widescreen (16:9), and square (1:1) aspects. Use when user asks to "generate cover image", "create article cover", or "make cover".
精选 JimLiu/baoyu-skills 2.7 万 原文
Claude CodeCodex CLI
baoyu-danger-gemini-web
Generates images and text via reverse-engineered Gemini Web API. Supports text generation, image generation from prompts, reference images for vision input, and multi-turn conversations. Use when other skills need image generation backend, or when user requests "generate image with Gemini", "Gemini text generation", or needs vision-capable AI generation.
精选 JimLiu/baoyu-skills 2.7 万 原文
Claude CodeCodex CLI