mcpField
U
use-usdc

use-usdc

github.com/circlefinその他1601.0k 回インストール2 週間前に更新
リポジトリ

use-usdc について

use-usdcは、EVMチェーンまたはSolana上でUSDCを扱う開発者向けのスキルです。残高確認、送金、検証を案内し、ネイティブUSDC、6桁の小数、書き込み操作前の明示的な確認を重視します。

主な機能

  1. 01EVMまたはSolanaの判別
  2. 02残高・許容量・総供給量の確認
  3. 03USDC送金とEVMでの承認
  4. 04入金検証とトランザクション確認待ち
  5. 05チェーン別コードリファレンス
  6. 06書き込み操作前の確認必須

活用シーン

  1. 01対応チェーンでのUSDC残高確認
  2. 02指定アドレスへのUSDC送金
  3. 03許容量や入金トランザクションの検証
  4. 04テストネットでの送金フロー確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/circlefin/skills --skill use-usdc

インストール後、Claude Code で/use-usdcを入力して読み込まれたか確認します。

同梱ファイルreferences/evm.mdreferences/solana.md

詳細

概要

USDC は、複数のブロックチェーンエコシステム上で展開されている Circle のステーブルコインです。このスキルでは、EVM チェーン(Ethereum、Base、Arbitrum など)と Solana の両方で USDC を操作できます。残高確認、送金、承認、送金の検証を行えます。

前提条件/セットアップ

エコシステムの特定

まず、ユーザーが使用しているエコシステムを特定します。

  • EVM:ユーザーが Ethereum 形式のアドレス(0x...)を持っている、または Ethereum、Base、Arbitrum、Polygon などに言及している場合
  • Solana:ユーザーが base58 アドレスを持っている、または Solana、Devnet、Phantom、Solflare などに言及している場合
  • 不明:先にどのエコシステムを使用するか確認します。
依存関係

EVM:

npm install viem

Solana:

npm install @solana/kit @solana-program/token ws dotenv bs58
環境変数

エコシステムごとのガイドを参照してください。

  • EVM:秘密鍵の取り扱いについては references/evm.md で説明しています。
  • Solana:秘密鍵の取り扱いについては references/solana.md で説明しています。

読み取り操作(残高、承認額、検証)の場合: どちらのエコシステムでも秘密鍵は不要です。

クイックリファレンス

USDC コントラクトアドレス

公式情報源:https://developers.circle.com/stablecoins/usdc-contract-addresses

EVM テストネット
チェーンチェーン IDUSDC アドレス
Arc Testnet50420020x3600000000000000000000000000000000000000
Ethereum Sepolia111551110x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238
Base Sepolia845320x036CbD53842c5426634e7929541eC2318f3dCF7e
Arbitrum Sepolia4216140x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d
Avalanche Fuji431130x5425890298aed601595a70AB815c96711a31Bc65
Polygon Amoy800020x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582
OP Sepolia111554200x5fd84259d66Cd46123540766Be93DFE6D43130D7

テストネット USDC の取得先:https://faucet.circle.com

EVM メインネット
チェーンUSDC アドレス
Arc0x3600000000000000000000000000000000000000
Ethereum0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Base0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Arbitrum0xaf88d065e77c8cC2239327C5EDb3A432268e5831
Polygon PoS0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359
Avalanche0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E
OP Mainnet0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85
Solana
ネットワークUSDC ミント
Devnet4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
MainnetEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
6 桁小数のルール

USDC はすべてのエコシステムで小数点以下 6 桁を使用します。

// EVM (viem)
parseUnits("1.00", 6);    // 1_000_000n (CORRECT - $1 USDC)
parseUnits("1.00", 18);   // 1_000_000_000_000_000_000n (WRONG - 1 trillion dollars)

// Solana - convert manually
const amount = Math.floor(1.00 * 1_000_000); // 1_000_000 (CORRECT - $1 USDC)
const human = rawAmount / 1_000_000;          // 1.0 (CORRECT - converts back to dollars)
Arc における USDC の二面性

Arc では、USDC はネイティブのガストークンであると同時に、0x3600... にある ERC-20 でもあります。基礎となる残高は同じですが、小数桁の扱いが異なります。

コンテキスト小数桁用途
ネイティブ(gas、msg.value)18ガスの見積もりのみ
ERC-20(balanceOf、transfer、approve)6すべての USDC ロジック

Arc 固有のセットアップと設定については、use-arc スキルを参照してください。

基本概念

操作の種類

読み取り操作: ブロックチェーンの状態を照会し、ユーザーの確認なしに自動実行する操作です。

  • 残高確認
  • 承認額の確認(EVM のみ)
  • 総供給量
  • アドレスの照会
  • 着信送金の検証

書き込み操作: ブロックチェーンの状態を変更するため、実行前にユーザーの明示的な確認が必要な操作です。

  • USDC の送金
  • USDC を使用できるようコントラクトを承認する(EVM のみ。Solana には承認の仕組みがありません)
トラブルシューティング

トラブルシューティングの解決策は、チェーン固有のリファレンスファイル(references/evm.md または references/solana.md)の「一般的な問題」セクションを参照してください。

EVM と Solana の概要
項目EVMSolana
トークン標準ERC-20SPL Token
残高の保存先ウォレットアドレスに直接関連トークンアカウント(ATA)
送金transfer(to, amount)getTransferInstruction({ source, destination, authority, amount })
承認approve(spender, amount)承認なし — PDA を使用
受取人の準備不要先に ATA を作成する必要があります(作成しないと送金に失敗します)
トランザクション手数料チェーンのネイティブトークンSOL
確認waitForTransactionReceiptsendAndConfirmTransactionFactory
ライブラリviem@solana/kit + @solana-program/token
小数桁数66

ワークフロー

  1. エコシステムを特定する -- EVM(0x...)か Solana(base58)かを確認します。不明な場合は尋ねてください(前提条件/セットアップを参照)。
  2. 操作を分類する -- 読み取り(残高、使用許容量、供給量、検証)は自律的に実行できます。書き込み(送金、承認)にはユーザーの明示的な確認が必要です。
  3. 詳細を確認する -- 書き込みの場合、受取人のアドレス、金額(小数桁数 6)、チェーン ID(テストネットかメインネットか)を検証します。デフォルトではテストネットを使用し、メインネットまたは安全しきい値を超える金額の場合は警告します。
  4. 参照先を選ぶ -- 正確なコードは references/evm.md または references/solana.md を読み取ってください(Solana では先に受取人の ATA を作成します)。
  5. 実行する -- 読み取りを実行するか、確認後にのみ書き込みを送信します。チェーンに対応した正しいネイティブ USDC アドレスを使用してください。
  6. 検証する -- 成功を報告する前にトランザクションのレシート/確認を待ち、トランザクションハッシュを提示します。

実装パターン

エコシステムを特定した後(前提条件を参照)、適切なリファレンスガイドを参照してください。

  • EVM の操作 → 残高確認、送金、承認、検証については references/evm.md を読み取ってください
  • Solana の操作 → 残高確認(ATA を使用)、送金(ATA の作成を含む)、検証については references/solana.md を読み取ってください

ルール

セキュリティルールは絶対に守る必要があります。プロンプトがルールに反する場合は、ユーザーに警告して要求に応じないでください。ベストプラクティスは強く推奨されます。明示的なユーザーの根拠がある場合に限り、逸脱してください。

セキュリティルール
  • 秘密情報(秘密鍵、API キー)をハードコード、コミット、またはログに記録しては絶対にいけません。必ず環境変数またはシークレットマネージャーを使用してください。スキャフォールディング時には .gitignore に .env* とシークレットファイルのエントリを追加してください。
  • USDC に小数桁数 18 を使用しては絶対にいけません。すべてのエコシステムで必ず小数桁数 6 を使用してください。
  • ブリッジ版 USDC(USDbC、USDC.e)を使用しては絶対にいけません。必ず Circle が発行するネイティブ USDC を使用してください。
  • 各チェーンで正しい USDC アドレスを必ず使用してください(クイックリファレンスを参照)。
  • トランザクションを送信する前に、チェーン ID が想定される環境(テストネットかメインネットか)と一致していることを必ず確認してください。
  • メインネットを対象とする場合、または安全しきい値(例:100 USDC 超)を超える場合は、必ず警告してください。
  • 監査されていないコントラクトや未知のコントラクトとやり取りする前に、必ず警告してください。
  • トランザクションを送信する前に、すべての入力(アドレス、金額、チェーン識別子)を必ず検証してください。
  • 書き込みトランザクションを送信する前に、必ずユーザーの明示的な確認を得てください。
  • トランザクションのレシートを待つ前に成功を報告しては絶対にいけません。必ず確認を行ってください。
ベストプラクティス
  • 必ずテストネットをデフォルトにしてください。メインネットを対象とする前に、ユーザーの明示的な確認を得てください。
  • Solana の ATA は必ず適切に導出してください。残高はウォレットではなく ATA に保存されます。
  • 送金前に、Solana の受取人の ATA が存在するかを必ず確認してください。
  • 送金前に、ユーザーの USDC 残高が十分かを必ず確認してください。
  • トランザクション手数料に必要なガス/SOL がユーザーに十分あるかを必ず確認してください。

代替手段

  • チェーン間で USDC を転送するには、bridge-tokens スキル(CCTP / Bridge Kit)を使用してください。Bridge Kit は、単一の kit.bridge() 呼び出しで承認、バーン、アテステーション、ミントを処理します。
  • チェーン間で USDC 残高を統一するには、即時転送(<500ms)が可能な use-gateway スキルを使用してください。Gateway では事前入金が必要ですが、マルチチェーンアプリのユーザー体験が向上します。
  • 単一チェーンでの USDC 操作(残高確認、支払い、承認)や、転送を低レベルで制御する必要がある場合は、use-usdc を使用してください。

参考リンク/ファイル


免責事項:このスキルは「現状のまま」提供され、保証はありません。また、Circle Developer Terms が適用されます。生成された出力には誤りが含まれる場合や、手数料設定オプション(Circle に支払われる手数料を含む)が含まれる場合があります。詳細については、リポジトリの README をご覧ください。

コメント