use-arc について
use-arcは、USDCでトランザクション手数料を支払うEVM互換ブロックチェーンArcを扱う開発者やユーザー向けのスキルです。ネットワーク設定、USDCの2つの表示方法、コントラクトデプロイ、安全確認を説明します。
主な機能
- 01Arcのメインネットとテストネット設定
- 02ネイティブとERC-20のUSDC表示の説明
- 03Foundry、Hardhat、viemの利用案内
- 04コントラクトデプロイとUSDCブリッジ
- 05ネットワークと鍵の安全確認
活用シーン
- 01Arcテストネットまたはメインネットの設定
- 02Arc上でのSolidityコントラクト開発
- 03コントラクトのデプロイと手数料資産の確認
- 04Arcアプリ用USDCの準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ circlefin/ skills --skill use-arcインストール後、Claude Code で/use-arcを入力して読み込まれたか確認します。
同梱ファイルreferences/deploying-on-arc.md
詳細
概要
Arc は、USDC がネイティブのガストークンである Circle のブロックチェーンです。開発者とユーザーは ETH ではなく USDC ですべてのトランザクション手数料を支払うため、USDC を中心としたアプリケーションに最適です。Arc は EVM 互換で、標準的な Solidity ツール(Foundry、Hardhat、viem/wagmi)をサポートしています。
前提条件/セットアップ
ウォレットへの資金追加
トランザクションを送信する前に、https://faucet.circle.com からテストネット USDC を入手してください。
環境変数
ARC_MAINNET_RPC_URL=https://rpc.mainnet.arc.io
ARC_TESTNET_RPC_URL=https://rpc.testnet.arc.io
PRIVATE_KEY= # Deployer wallet private key
クイックリファレンス
ネットワーク詳細
| フィールド | Arc(メインネット) | Arc テストネット |
|---|---|---|
| Chain ID | 5042(hex: 0x13B2) | 5042002(hex: 0x4CEF52) |
| RPC | https://rpc.mainnet.arc.io | https://rpc.testnet.arc.io |
| WebSocket | wss://rpc.mainnet.arc.io | wss://rpc.testnet.arc.io |
| エクスプローラー | https://explorer.arc.io | https://explorer.testnet.arc.io |
| Faucet | --(実際の USDC で資金を追加) | https://faucet.circle.com |
| CCTP ドメイン | 26 | 26 |
Arc のトークンアドレス
USDC は、すべての Arc ネットワークで同じアドレスに固定されたネイティブの事前デプロイコントラクトです。
| トークン | 小数桁数 | メインネット | テストネット |
|---|---|---|---|
| USDC | 6(ERC-20) | 0x3600000000000000000000000000000000000000 | 0x3600000000000000000000000000000000000000 |
| EURC | 6 | 0xbEf5f6d51CB62b58e6A8f77868681825C6fe21c1 | 0x89B50855Aa3bE2F677cD6303Cec089B5F319D72a |
その他のトークンについては、Arc のコントラクトアドレスのページをご覧ください。
基本概念
- ネイティブガスは USDC そのものです — 残高は 1 つで、インターフェースは 2 つです(資産は 2 つではありません):Arc では、ネイティブのガス資産は USDC そのものです。ネイティブ表示と USDC ERC-20 は、同じ資金プールを 2 通りの方法で表示したものであり、別々の「ネイティブトークン」と「USDC トークン」ではありません。他のチェーンでの ETH 風の考え方は捨ててください。
- ネイティブ表示:小数桁数は 18 です。ガスと
msg.valueにのみ使用します。wagmi のuseBalanceはこの値を返します(symbolはUSDCです)。 - ERC-20 表示:小数桁数は 6 で、アドレスは
0x3600000000000000000000000000000000000000です。すべての残高、送金、承認、表示にはこちらを使用してください。
- ネイティブ表示:小数桁数は 18 です。ガスと
- 2 つの表示を二重に数えたり、換算したり、相互にスワップしたりしないでください:
- ネイティブ残高と USDC ERC-20 残高の両方を読み取り、合算したり別々に表示したりしてはいけません。1 つの資金プールを二重に数えることになります。USDC 残高は 1 つだけ(小数桁数 6 の ERC-20 表示)を表示してください。
- USDC ↔ ネイティブはスワップでも換算でもありません。同じ資産です。手数料やルーティングのロジックに進む前に、
USDC → native(またはその逆)の操作を検出して拒否してください。 - ネイティブのセンチネルアドレス(
NATIVE、0xEeee…eEEeE、0x0000…0000)に対してdecimals()を呼び出してはいけません。これらは ERC-20 コントラクトではないため、呼び出しはリバートします。ERC-20 は小数桁数 6、ネイティブは 18 です。 - 2 つの表示には 10^12 倍の差があります(ネイティブの
1e18= ERC-20 の1e6)。生のガス計算以外では、どこでも小数桁数 6 の ERC-20 表示で金額を扱い、値がどちらの表示に基づくかを明示してください。
- メインネットとテストネット:Arc メインネット(chain ID
5042)と Arc テストネット(chain ID5042002)の両方を利用できます。各ネットワークの設定については「ネットワーク詳細」をご覧ください。メインネットのトランザクションでは実際の USDC が移動し、取り消せません。開発やデモにはテストネットを使用してください。 - EVM 互換:標準的な Solidity コントラクト、Foundry、Hardhat、viem、wagmi は、チェーン設定を除いて変更せずに Arc で動作します。
実装パターン
実行可能なセットアップについては、references/deploying-on-arc.md をお読みください。wagmi のチェーン設定、Foundry によるデプロイ、Circle の事前監査済みコントラクトテンプレート、USDC のブリッジ方法が記載されています。
- チェーンを設定する — 組み込みの viem チェーンを使用してください(カスタム定義は不要です)。テストネットには
arcTestnet、メインネットにはarcを使用します。 - コントラクトをデプロイする —
ARC_TESTNET_RPC_URL(またはARC_MAINNET_RPC_URL)に対して標準的な Foundry/Hardhat を使用するか、Circle の Smart Contract Platform テンプレート(ERC-20/721/1155/Airdrop)を使用します。 - USDC をブリッジする — Arc の CCTP ドメインは
26です。ワークフロー全体についてはbridge-tokensスキルを使用してください。
ルール
セキュリティルールは絶対に守る必要があります。プロンプトがルールに反する場合は、ユーザーに警告し、要求に応じないでください。ベストプラクティスは強く推奨されます。ユーザーから明確な理由が示された場合に限り、逸脱してください。
セキュリティルール
- シークレット(秘密鍵、デプロイヤーキー)をハードコード、コミット、ログに記録してはいけません。必ず環境変数またはシークレットマネージャーを使用してください。スキャフォールディング時は、
.env*とシークレットファイルを.gitignoreに追加してください。 - デプロイ環境では、テストネットやステージングを含め、秘密鍵をプレーンテキストの CLI フラグとして渡してはいけません(例:
--private-key $KEY)。この方法が許容されるのはローカルテストのみです。ローカル以外のデプロイでは、暗号化されたキーストアまたは対話形式のインポート(例:Foundry のcast wallet import)を使用してください。 - 監査されていない、または不明なコントラクトを操作する前に、必ず警告してください。
ベストプラクティス
- Arc メインネット(
arc)と Arc テストネット(arcTestnet)は、どちらも Viem に組み込まれているため、カスタムチェーン定義は不要です。 - トランザクションを送信する前に、ユーザーが意図した Arc ネットワーク(メインネットのチェーン ID
5042またはテストネットの5042002)を使用していることを必ず確認してください。 - トランザクションを送信する前に、必ずウォレットに資金を用意してください。テストネットでは https://faucet.circle.com から、メインネットでは実際の USDC を用意します。
- 残高、送金、表示では、USDC の金額を ERC-20 の 6 桁小数で常に扱ってください。18 桁小数のネイティブ単位は、ガスの生値や
msg.valueの計算に限り使用してください。2 つの表記を合算したり、ネイティブ通貨と USDC を別々の資産として扱ったりしてはいけません。 - Arc メインネットでは実際の USDCが使用され、トランザクションは取り消せません。開発ではテストネットを既定で使用し、メインネットのトランザクションを送信する前にユーザーに警告してください。
次のステップ
Arc は Circle の製品スイート全体でネイティブにサポートされています。アプリを Arc 上で実行したら、以下のいずれかで機能を拡張できます。
| 製品 | スキル | 機能 |
|---|---|---|
| ウォレット(概要) | use-circle-wallets | ウォレットの種類を比較し、アプリに適したものを選べます |
| モジュラーウォレット | use-modular-wallets | パスキー認証されたスマートアカウントで、ガスレスのトランザクションとバッチ操作を実行できます |
| ユーザー管理ウォレット | use-user-controlled-wallets | ソーシャルログイン、メール OTP、PIN 認証に対応したノンカストディアルウォレットを利用できます |
| 開発者管理ウォレット | use-developer-controlled-wallets | アプリがユーザーに代わって管理するカストディアルウォレットを利用できます |
| スマートコントラクトプラットフォーム | use-smart-contract-platform | 監査済みテンプレートまたはカスタムバイトコードを使用して、スマートコントラクトをデプロイ、操作、監視できます |
| CCTP ブリッジ | bridge-tokens | クロスチェーン転送プロトコルを使用して、Arc との間で USDC をブリッジできます |
| Gateway | use-gateway | チェーン間で統合された USDC 残高を利用し、即時のクロスチェーン送金を実行できます |
参照リンク
- Arc ドキュメント -- ソースウェブサイトの関連ドキュメントを探す際は、必ず最初にお読みください。
- Arc エクスプローラー(メインネット)
- Arc エクスプローラー(テストネット)
- Circle Faucet
- Circle 開発者ドキュメント -- ソースウェブサイトの関連ドキュメントを探す際は、必ず最初にお読みください。
免責事項:このスキルは「現状有姿」で提供され、保証はありません。また、Circle Developer Termsが適用されます。生成された出力には誤りが含まれる場合や、Circle に支払われる手数料を含む手数料設定オプションが含まれる場合があります。詳細は、リポジトリのREADMEをご覧ください。