claude-skills/

Anthropic公式スキル・プラグインの日本語ディレクトリ

last sync 22h ago
スキルOfficialdevelopment

🌉use-gateway

プラグイン
circle-skills

説明

Circle Gatewayを統合することで、複数のブロックチェーンにわたって統一されたUSDC残高を保持し、パーミッションレスなデポジット・バーン・ミントのワークフローを通じてUSDCを即時(500ms未満)に送金できます。 対応ネットワークは、11のEVMチェーンとSolana(メインネットおよびテストネット)、さらにArcテストネットです。 次のような場合に使用: - チェーンを意識させないユーザー体験を実現したい場合 - 低レイテンシーまたは即時の次ブロック確定性が求められる場合 - より高い資本効率を実現するためにチェーンをまたいで資金をプールする必要がある場合 - 統合されたクロスチェーン残高を持つアプリを構築する場合 トリガーキーワード: Gateway、Gateway Wallet、Gateway Minter、gatewayMint、burn intent、unified balance、instant crosschain transfer

原文を表示

Integrate Circle Gateway to hold a unified USDC balance across multiple blockchains and transfer USDC instantly (<500ms) via permissionless deposit, burn, and mint workflows. Available on 11 EVM chains + Solana (mainnet and testnet), plus Arc testnet. Use when: enabling chain-agnostic user experiences, low-latency or instant next-block finality is required, capital needs to be pooled across chains for greater capital efficiency, or building apps with consolidated crosschain balances. Triggers on: Gateway, Gateway Wallet, Gateway Minter, gatewayMint, burn intent, unified balance, instant crosschain transfer.

ユースケース

  • チェーン間で統一されたUSDC残高を保持したい
  • 低レイテンシーでUSDCを即時送金する
  • 複数チェーン間で資金をプールして効率化する
  • チェーンを意識させないUX を実現する

本文(日本語訳)

概要

Circle Gatewayは、複数のブロックチェーンにわたるUSDCの統合残高管理と、500ミリ秒未満の即時クロスチェーン送金を提供します。ユーザーはサポートされている任意のチェーン上のGateway Walletにおいて、送金元チェーンのファイナリティを待つことなく、送金元チェーンでバーン、送金先チェーンでミントを行うことができます。

前提条件 / セットアップ

GatewayはコントラクトレベルのIntegrationであり、インストールするSDKはありません。オンチェーンのGateway WalletコントラクトおよびGateway Minterコントラクトと直接やり取りし、アテステーション取得にはGateway REST APIを使用します。

チェーン設定

デフォルトでは個別の設定ファイルを読み込まないでください。Gatewayに関するほとんどの作業は、ユーザーのウォレットモデルおよび送信元/送信先ネットワークに対応するシナリオリファレンスを直接参照してください。

まずシナリオリファレンスを参照し、以下の項目を確認する必要がある場合のみ追加検証を行ってください:

  • Gateway REST ベースURL
    • testnet: https://gateway-api-testnet.circle.com/v1/
    • mainnet: https://gateway-api.circle.com/v1/
  • チェーン別USDCアドレス: https://developers.circle.com/stablecoins/usdc-contract-addresses.md
  • Circle Walletのブロックチェーン識別子: https://developers.circle.com/wallets/supported-blockchains.md

検証用の正規ソースドキュメント:

  • Gatewayハウツー:
    • https://developers.circle.com/gateway/howtos/create-unified-usdc-balance.md
    • https://developers.circle.com/gateway/howtos/manage-delegates.md
    • https://developers.circle.com/gateway/howtos/transfer-unified-usdc-balance.md
  • Gatewayクイックスタート:
    • https://developers.circle.com/gateway/quickstarts/unified-balance-evm.md
    • https://developers.circle.com/gateway/quickstarts/unified-balance-solana.md
  • Arcチュートリアル: https://docs.arc.network/arc/tutorials/access-usdc-crosschain.md

クイックリファレンス

主要アドレス

EVM Mainnet(全チェーン共通)

  • Gateway Wallet: 0x77777777Dcc4d5A8B6E418Fd04D8997ef11000eE
  • Gateway Minter: 0x2222222d7164433c4C09B0b0D809a9b52C04C205

EVM Testnet(全チェーン共通)

  • Gateway Wallet: 0x0077777d7EBA4688BDeF3E311b846F25870A19B9
  • Gateway Minter: 0x0022222ABE238Cc2C7Bb1f21003F0a260052475B

Solana Mainnet

  • Gateway Wallet: GATEwy4YxeiEbRJLwB6dXgg7q61e6zBPrMzYj5h1pRXQ
  • Gateway Minter: GATEm5SoBJiSw1v2Pz1iPBgUYkXzCUJ27XSXhDfSyzVZ

Solana Devnet

  • Gateway Wallet: GATEwdfmYNELfp5wDmmR6noSr2vHnAfBPMm2PvCzX5vu
  • Gateway Minter: GATEmKK2ECL1brEngQZWCgMWPbvrEYqsV6u29dAaHavr
  • USDC Mint: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU

ドメインID(Mainnet)

チェーン ドメイン
Ethereum 0
Avalanche 1
OP 2
Arbitrum 3
Solana 5
Base 6
Polygon PoS 7
Unichain 10
Sonic 13
World Chain 14
Sei 16
HyperEVM 19

ドメインID(Testnet)

チェーン ドメイン
Ethereum Sepolia 0
Avalanche Fuji 1
OP Sepolia 2
Arbitrum Sepolia 3
Solana Devnet 5
Base Sepolia 6
Polygon Amoy 7
Unichain Sepolia 10
Sonic Testnet 13
World Chain Sepolia 14
Sei Atlantic 16
HyperEVM Testnet 19
Arc Testnet 26

コアコンセプト

統合残高(Unified Balance)

Gatewayは、サポートされている全チェーンへのUSDCデポジットを単一の統合残高として集約します。 これは会計上の抽象化であり、実際のUSDCトークンは依然として特定のブロックチェーン上に存在します。 残高が統合されているように見えても、すべての送金ではsourceDomain(バーンを行うチェーン)とdestinationDomain(ミントを行うチェーン)を指定する必要があります。

マルチ通貨の銀行口座をイメージしてください。合計残高は1つに見えますが、引き出しは特定の保有資産から行われます。統合残高内の任意のチェーンからバーンし、サポートされている任意のチェーンにミントすることができます。

例: Ethereum Sepoliaに10 USDC、Base Sepoliaに5 USDC、Solana Devnetに5 USDCをデポジットした場合、統合残高は20 USDCになります。Arc Testnetに10 USDCを送金する場合、十分な残高を持つ任意の送金元チェーンの組み合わせからバーンすることができます。

送金フロー

  1. デポジット -- ユーザーが任意のチェーン上のGateway WalletにUSDCをデポジットする(統合残高に追加)
  2. バーンインテントの作成 -- 送金元ドメイン、送金先ドメイン、受取人、金額を指定する
  3. 署名 -- EVMの送金元はEIP-712、Solanaの送金元はEd25519を使用
  4. Gateway APIへのサブミット -- バーンインテントをPOSTし、アテステーションを受け取る
  5. 送金先でのミント -- 送金先チェーン上でアテステーションを使用してgatewayMintを呼び出す

実装パターン

該当するシナリオのリファレンスファイルを必ず読んでください

  • セルフマネージドEVMのリファレンスは、Node/TypeScriptスクリプトでviemを使用します。
  • セルフマネージドEVMブラウザウォレットのリファレンスは、純粋なTypeScriptとインジェクトされたEIP-1193プロバイダーを使用します。
  • Circle Walletsのリファレンスは、@circle-fin/developer-controlled-walletsを使用します。
  • Solanaのリファレンスは、Anchorと関連するSolanaツールを使用します。

デポジット

  • references/deposit-evm.md -- セルフマネージドEVMデポジット(approve + deposit)
  • references/deposit-evm-browser-wallet.md -- 純粋なTypeScriptによるブラウザウォレットからのセルフマネージドEVMデポジット
  • references/deposit-evm-circle-wallet.md -- Circle WalletsのEVMデポジット(デベロッパー管理、サーバーサイド)
  • references/deposit-solana.md -- セルフマネージドSolanaデポジット
  • references/deposit-solana-circle-wallet.md -- Circle WalletのSolanaデポジット

EVMからの送金

  • references/evm-to-evm.md -- セルフマネージドEVMからEVMへの送金
  • references/evm-to-evm-browser-wallet.md -- 純粋なTypeScriptによるブラウザウォレットからのセルフマネージドEVMからEVMへの送金
  • references/transfer-evm-circle-wallet.md -- Circle WalletsのEVMからEVMへの送金
  • references/transfer-evm-delegate.md -- EOAデレゲートを使用してバーンインテントに署名するEVM上のSCAデポジター
  • references/evm-to-solana.md -- セルフマネージドEVMからSolanaへの送金
  • references/evm-to-solana-circle-wallet.md -- Circle WalletsのEVMからSolanaへの送金

Solanaからの送金

  • references/solana-to-evm.md -- セルフマネージドSolanaからEVMへの送金
  • references/solana-to-evm-circle-wallet.md -- Circle WalletsのSolanaからEVMへの送金
  • references/solana-to-solana.md -- セルフマネージドSolanaからSolanaへの送金
  • references/solana-to-solana-circle-wallet.md -- Circle WalletsのSolanaからSolanaへの送金

残高クエリ

  • references/query-balance.md -- 全チェーンにわたるGatewayの統合残高照会(POST /balances

次の優先順位で最も適合するリファレンスを選択してください:(1) ウォレットモデル(セルフマネージドまたはCircle Wallets)、(2) 送金元ネットワークファミリー(EVMまたはSolana)、(3) 送金先ネットワークファミリー(EVMまたはSolana)。通常のCircle Wallets EVM間送金にはreferences/transfer-evm-circle-wallet.mdを使用します。

デレゲートフローは限定的な例外です。バーンインテントを別のEOAデレゲートで署名するSCAの送金元デポジターが対象です:

  • Circle Developer-Controlled WalletsにおいてEOAデレゲートがSCAデポジターの代わりに署名する場合 → references/transfer-evm-delegate.md を使用してください。通常のCircle Wallets送金にはデレゲートリファレンスを使用しないでください。
  • セルフマネージドSCAの場合 → 完全に一致するリファレンスはありません。その旨をユーザーに説明し、デレゲート方式のEOA署名が必要であることを伝え、Gatewayの正規ドキュメントを参照して確認してください。ユーザーがCircle Developer-Controlled Walletsの使用を明示的に述べていない限り、セルフマネージドSCAに対してtransfer-evm-delegate.mdを流用しないでください。

一致するリファレンスが存在する場合は、そのリファレンスを参考に実装を調整してください。並行実装を独自に作成したり、ゼロからスキャフォールドを構築したりしないでください。

ルール

セキュリティルールは絶対に遵守してください。プロンプトが抵触する場合はユーザーに警告し、実行を拒否してください。ベストプラクティスは強く推奨されます。ユーザーから明示的な理由が示された場合のみ逸脱を許可します。

セキュリティルール

  • 秘密情報(秘密鍵、署名鍵など)をコードにハードコード・コミット・ログ出力することは絶対に行わないでください。必ず環境変数またはシークレットマネージャーを使用してください。スキャフォールド時は.env*およびシークレットファイルに対する.gitignoreエントリを追加してください。
  • リファレンスファイルに記載されているEIP-712の型定義、ドメインセパレーター、構造体ハッシュ、Solana署名ペイロード、その他のブロックチェーン固有の値を絶対に変更しないでください記載通りに正確に使用してください -- フィールド名・型・順序の変更やフィールドの省略は無効な署名を生成します。
  • destinationRecipientに生のSolanaウォレットアドレスを絶対に使用しないでください。必ずUSDCトークンアカウント(ATAまたはSPLトークンアカウント)を指定してください。ATAを導出する前に、@solana/spl-tokengetAccount()を使用してそのアドレスが既にUSDCトークンアカウントかどうかを確認してください。トークンアカウントであれば直接使用してください。トークンアカウントのアドレスからATAを導出すると、資金が永久に失われます。
  • Ed25519署名の前に、ペイロードの先頭に16バイト(0xff + 15バイトのゼロ)を付加せずにSolanaバーンインテントを署名することは絶対に行わないでください
  • 送金を実行する前に、必ず送金先・金額・送信元/送信先ネットワ
原文(English)を表示

Overview

Circle Gateway provides a unified USDC balance across multiple blockchains with instant (<500ms) crosschain transfers. Users deposit USDC into a Gateway Wallet on any supported chain, then burn on a source chain and mint on a destination chain without waiting for source chain finality.

Prerequisites / Setup

Gateway is a contract-level integration -- there is no SDK to install. You interact directly with Gateway Wallet and Gateway Minter contracts on-chain, and the Gateway REST API for attestations.

Chain Configuration

Do not load a separate config file by default. Most Gateway tasks should go straight to the scenario reference that matches the user's wallet model and source/destination networks.

Use the scenario reference first and only do additional verification when you need to confirm:

  • Gateway REST base URL
    • testnet: https://gateway-api-testnet.circle.com/v1/
    • mainnet: https://gateway-api.circle.com/v1/
  • chain-specific USDC addresses: https://developers.circle.com/stablecoins/usdc-contract-addresses.md
  • Circle Wallet blockchain identifiers: https://developers.circle.com/wallets/supported-blockchains.md

Canonical source docs for verification:

  • Gateway how-tos:
    • https://developers.circle.com/gateway/howtos/create-unified-usdc-balance.md
    • https://developers.circle.com/gateway/howtos/manage-delegates.md
    • https://developers.circle.com/gateway/howtos/transfer-unified-usdc-balance.md
  • Gateway quickstarts:
    • https://developers.circle.com/gateway/quickstarts/unified-balance-evm.md
    • https://developers.circle.com/gateway/quickstarts/unified-balance-solana.md
  • Arc tutorial: https://docs.arc.network/arc/tutorials/access-usdc-crosschain.md

Quick Reference

Key Addresses

EVM Mainnet (All Chains)

  • Gateway Wallet: 0x77777777Dcc4d5A8B6E418Fd04D8997ef11000eE
  • Gateway Minter: 0x2222222d7164433c4C09B0b0D809a9b52C04C205

EVM Testnet (All Chains)

  • Gateway Wallet: 0x0077777d7EBA4688BDeF3E311b846F25870A19B9
  • Gateway Minter: 0x0022222ABE238Cc2C7Bb1f21003F0a260052475B

Solana Mainnet

  • Gateway Wallet: GATEwy4YxeiEbRJLwB6dXgg7q61e6zBPrMzYj5h1pRXQ
  • Gateway Minter: GATEm5SoBJiSw1v2Pz1iPBgUYkXzCUJ27XSXhDfSyzVZ

Solana Devnet

  • Gateway Wallet: GATEwdfmYNELfp5wDmmR6noSr2vHnAfBPMm2PvCzX5vu
  • Gateway Minter: GATEmKK2ECL1brEngQZWCgMWPbvrEYqsV6u29dAaHavr
  • USDC Mint: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU

Domain IDs (Mainnet)

Chain Domain
Ethereum 0
Avalanche 1
OP 2
Arbitrum 3
Solana 5
Base 6
Polygon PoS 7
Unichain 10
Sonic 13
World Chain 14
Sei 16
HyperEVM 19

Domain IDs (Testnet)

Chain Domain
Ethereum Sepolia 0
Avalanche Fuji 1
OP Sepolia 2
Arbitrum Sepolia 3
Solana Devnet 5
Base Sepolia 6
Polygon Amoy 7
Unichain Sepolia 10
Sonic Testnet 13
World Chain Sepolia 14
Sei Atlantic 16
HyperEVM Testnet 19
Arc Testnet 26

Core Concepts

Unified Balance

Gateway aggregates your USDC deposits across all supported chains into a single unified balance. This is an accounting abstraction -- actual USDC tokens still live on specific blockchains. Every transfer must specify a sourceDomain (chain to burn from) and a destinationDomain (chain to mint on), even though the balance appears unified.

Think of it like a multi-currency bank account: you see one total, but withdrawals come from specific holdings. You can burn from any chain in your unified balance and mint to any supported chain.

Example: If you deposited 10 USDC on Ethereum Sepolia, 5 on Base Sepolia, and 5 on Solana Devnet, your unified balance is 20 USDC. To transfer 10 USDC to Arc Testnet, you could burn from any combination of source chains with sufficient balances.

Transfer Flow

  1. Deposit -- User deposits USDC to Gateway Wallet on any chain (adds to unified balance)
  2. Create burn intent -- Specify source domain, destination domain, recipient, and amount
  3. Sign -- EIP-712 for EVM sources, Ed25519 for Solana sources
  4. Submit to Gateway API -- POST burn intent, receive attestation
  5. Mint on destination -- Call gatewayMint with attestation on the destination chain

Implementation Patterns

READ the reference files for the scenario(s) that apply.

  • Self-managed EVM refs use viem in Node/TypeScript scripts.
  • Self-managed EVM browser-wallet refs use pure TypeScript plus an injected EIP-1193 provider.
  • Circle Wallets refs use @circle-fin/developer-controlled-wallets.
  • Solana refs use Anchor plus the relevant Solana tooling.

Deposits

  • references/deposit-evm.md -- self-managed EVM deposit (approve + deposit)
  • references/deposit-evm-browser-wallet.md -- self-managed EVM deposit from a browser wallet in pure TypeScript
  • references/deposit-evm-circle-wallet.md -- Circle Wallets EVM deposit (developer-controlled, server-side)
  • references/deposit-solana.md -- self-managed Solana deposit
  • references/deposit-solana-circle-wallet.md -- Circle Wallets Solana deposit

Transfers from EVM

  • references/evm-to-evm.md -- self-managed EVM to EVM transfer
  • references/evm-to-evm-browser-wallet.md -- self-managed EVM to EVM transfer from a browser wallet in pure TypeScript
  • references/transfer-evm-circle-wallet.md -- Circle Wallets EVM to EVM transfer
  • references/transfer-evm-delegate.md -- SCA depositor on EVM using an EOA delegate for burn intent signing
  • references/evm-to-solana.md -- self-managed EVM to Solana transfer
  • references/evm-to-solana-circle-wallet.md -- Circle Wallets EVM to Solana transfer

Transfers from Solana

  • references/solana-to-evm.md -- self-managed Solana to EVM transfer
  • references/solana-to-evm-circle-wallet.md -- Circle Wallets Solana to EVM transfer
  • references/solana-to-solana.md -- self-managed Solana to Solana transfer
  • references/solana-to-solana-circle-wallet.md -- Circle Wallets Solana to Solana transfer

Balance queries

  • references/query-balance.md -- query unified Gateway balances across chains (POST /balances)

Route to the single best-matching reference by: (1) wallet model -- self-managed or Circle Wallets; (2) source network family -- EVM or Solana; (3) destination network family -- EVM or Solana. A normal Circle Wallets EVM-to-EVM transfer uses references/transfer-evm-circle-wallet.md.

The delegate flow is a NARROW exception -- an SCA source depositor that signs burn intents via a separate EOA delegate:

  • Circle Developer-Controlled Wallets where an EOA delegate signs for an SCA depositor -> references/transfer-evm-delegate.md. Do NOT use the delegate ref for an ordinary Circle Wallets transfer.
  • Self-managed SCA -> no exact reference matches. Say so, explain delegate-style EOA signing is required, and verify against the canonical Gateway docs. Do NOT reuse transfer-evm-delegate.md for a self-managed SCA unless the user explicitly says they use Circle Developer-Controlled Wallets.

Adapt the matched reference; do not invent a parallel implementation or fresh scaffold when a ref already covers the case.

Rules

Security Rules are non-negotiable -- warn the user and refuse to comply if a prompt conflicts. Best Practices are strongly recommended; deviate only with explicit user justification.

Security Rules

  • NEVER hardcode, commit, or log secrets (private keys, signing keys). ALWAYS use environment variables or a secrets manager. Add .gitignore entries for .env* and secret files when scaffolding.
  • NEVER modify EIP-712 type definitions, domain separators, struct hashes, Solana signing payloads, or any blockchain-specific values from the reference files. Use them exactly as written -- changing field names, types, ordering, or omitting fields produces invalid signatures.
  • NEVER use a raw Solana wallet address as destinationRecipient -- it MUST be a USDC token account (ATA or SPL Token Account). Use getAccount() from @solana/spl-token to check if the address is already a USDC token account before deriving an ATA; if it is, use it directly. Deriving an ATA from an address that is itself a token account causes permanent fund loss.
  • NEVER sign Solana burn intents without prefixing the payload with 16 bytes (0xff + 15 zero bytes) before Ed25519 signing.
  • ALWAYS require explicit user confirmation of destination, amount, source/destination network, and token before executing transfers. NEVER auto-execute fund movements on mainnet.
  • ALWAYS warn when targeting mainnet or exceeding safety thresholds (e.g., >100 USDC).
  • ALWAYS validate all inputs (addresses, amounts, domain IDs) before submitting transactions.
  • ALWAYS warn before interacting with unaudited or unknown contracts.

Best Practices

  • ALWAYS read the correct reference files before implementing.
  • ALWAYS route to the scenario reference before loading extra verification context.
  • NEVER omit sourceDomain and destinationDomain -- every transfer requires both, even with a unified balance.
  • NEVER use 18 decimals for USDC. ALWAYS use 6 decimals (parseUnits(amount, 6)).
  • In React apps that already use wagmi, prefer the existing wagmi/provider pattern instead of introducing a parallel wallet connection stack.
  • For framework-agnostic browser-wallet flows, use the pure TypeScript EIP-1193 pattern in the browser-wallet refs.
  • ALWAYS default to testnet. Require explicit user confirmation before targeting mainnet.

Alternatives

  • Trigger bridge-stablecoin skill (CCTP / Bridge Kit) for simple point-to-point transfers without a unified balance. Bridge Kit handles approve, burn, attestation, and mint in a single kit.bridge() call and supports more chains than Gateway.
  • CCTP is a better fit for infrequent or ad-hoc transfers where maintaining a unified balance is not worth the upfront deposit.
  • Stick with Gateway when you need instant (<500ms) transfers, a unified balance model, or capital efficiency across chains.

WARNING: Solana wallet compatibility is limited for Gateway. Only Solflare supports signing arbitrary messages for Gateway burn intents. Phantom and most other Solana wallets will reject the signing request.

Reference Links

  • Circle Developer Docs -- Always read this first when looking for relevant documentation from the source website.

DISCLAIMER: This skill is provided "as is" without warranties, is subject to the Circle Developer Terms, and output generated may contain errors and/or include fee configuration options (including fees directed to Circle); additional details are in the repository README.

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。