accept-agent-payments
Use when a developer wants to monetize an API, endpoint, service, model, dataset, tool, or agent-facing resource with Circle USDC…
Deploy, import, interact with, and monitor smart contracts using Circle Smart Contract Platform APIs. Supports bytecode deployment, template contracts (ERC-20/721/1155/Airdrop), ABI-based read/write calls, and webhook event monitoring. Keywords: contract deployment, smart
$ npx -y skills add circlefin/skills --skill use-smart-contract-platform --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/use-smart-contract-platformContext preview
The summary Claude sees to decide when to auto-load this skill.
Deploy, import, interact with, and monitor smart contracts using Circle Smart Contract Platform APIs. Supports bytecode deployment, template contracts (ERC-20/721/1155/Airdrop), ABI-based read/write calls, and webhook event monitoring. Keywords: contract deployment, smart
name: use-smart-contract-platform description: "Deploy, import, interact with, and monitor smart contracts using Circle Smart Contract Platform APIs. Supports bytecode deployment, template contracts (ERC-20/721/1155/Airdrop), ABI-based read/write calls, and webhook event monitoring. Keywords: contract deployment, smart contract, ABI interactions, template contracts, event monitoring, contract webhooks, bytecode, ERC-1155, ERC-20, ERC-721." requirements: runtimes: [] connectors: []
Circle Smart Contract Platform (SCP) provides APIs and SDKs for deploying, importing, interacting with, and monitoring smart contracts across supported networks. Deploy contracts from raw bytecode, use audited templates for standard patterns, execute ABI-based contract calls, and monitor emitted events through webhooks.
npm install @circle-fin/smart-contract-platform @circle-fin/developer-controlled-wallets
CIRCLE_API_KEY= # Circle API key (format: PREFIX:ID:SECRET) ENTITY_SECRET= # Registered entity secret for Developer-Controlled Wallets
import { initiateSmartContractPlatformClient } from "@circle-fin/smart-contract-platform";
import { initiateDeveloperControlledWalletsClient } from "@circle-fin/developer-controlled-wallets";
const scpClient = initiateSmartContractPlatformClient({
apiKey: process.env.CIRCLE_API_KEY!,
entitySecret: process.env.ENTITY_SECRET!,
});
const walletsClient = initiateDeveloperControlledWalletsClient({
apiKey: process.env.CIRCLE_API_KEY!,
entitySecret: process.env.ENTITY_SECRET!,
});| Chain | Mainnet | Testnet | | --- | --- | --- | | Arbitrum | `ARB` | `ARB-SEPOLIA` | | Arc | `ARC` | `ARC-TESTNET` | | Avalanche | `AVAX` | `AVAX-FUJI` | | Base | `BASE` | `BASE-SEPOLIA` | | Ethereum | `ETH` | `ETH-SEPOLIA` | | Monad | `MONAD` | `MONAD-TESTNET` | | OP Mainnet | `OP` | `OP-SEPOLIA` | | Polygon PoS | `MATIC` | `MATIC-AMOY` | | Unichain | `UNI` | `UNI-SEPOLIA` |
The `references/` examples use Arc Testnet (`blockchain: 'ARC-TESTNET'`); for **Arc mainnet**, pass `blockchain: 'ARC'`. The Arc USDC address `0x3600000000000000000000000000000000000000` is the same on both networks.
| Template | Standard | Template ID | Use Case | | --- | --- | --- | --- | | Token | ERC-20 | `a1b74add-23e0-4712-88d1-6b3009e85a86` | Fungible tokens, loyalty points | | NFT | ERC-721 | `76b83278-50e2-4006-8b63-5b1a2a814533` | Digital collectibles, gaming assets | | Multi-Token | ERC-1155 | `aea21da6-0aa2-4971-9a1a-5098842b1248` | Mixed fungible/non-fungible tokens | | Airdrop | N/A | `13e322f2-18dc-4f57-8eed-4bddfc50f85e` | Bulk token distribution |
SCP workflows pair two SDK clients:
Write operations use `walletsClient.createContractExecutionTransaction()`, NOT the SCP client.
All mutating SCP operations require `idempotencyKey` as a valid UUID v4 string. Use `crypto.randomUUID()` in Node.js. Non-UUID keys fail with generic `API parameter invalid` errors.
Contract deployment is asynchronous. The response indicates initiation only. Poll `getContract()` for `deploymentStatus`.
Compile Solidity with `evmVersion: "paris"` or earlier to avoid the `PUSH0` opcode. Solidity >= 0.8.20 defaults to Shanghai. Arc and other non-Shanghai chains fail deployment with `ESTIMATION_ERROR` / `Create2: Failed on deploy` if bytecode contains `PUSH0`.
Write operations (contract deployments, executions) follow the same asynchronous state machine as Developer-Controlled Wallets. Poll with `walletsClient.getTransaction({ id: txId })` until a terminal state is reached.
**Happy path:** `INITIATED` -> `CLEARED` -> `QUEUED` -> `SENT` -> `CONFIRMED` -> `COMPLETE`
**Terminal states:**
**Intermediate states:**
Contract deployment status is tracked separately via `scpClient.getContract()` using `deploymentStatus`.
For debugging failed transactions, see [Transaction States and Errors](https://d
Ship stablecoin apps faster with Circle Skills: best-practice guidance for USDC payments, crosschain transfers, wallets, and smart contracts, plus Circle's MCP server for real-time SDK and documentation context.
Use when a developer wants to monetize an API, endpoint, service, model, dataset, tool, or agent-facing resource with Circle USDC…
View spending policy on a Circle agent wallet — per-transaction, daily, weekly, and monthly USDC caps via the `circle` CLI. Use…
Build browser or server token bridging across chains with Circle App Kit or standalone Bridge Kit. Bridges USDC across CCTP…
Set up and integrate Circle Onramp, the hosted widget that lets end users buy crypto with fiat (bank transfer, debit card, Apple…
Fund a Circle agent wallet with USDC via the `circle` CLI. payments are gas-abstracted. users can pay with USDC only, no ETH…
Use this skill when the user wants to call a paid API, look something up online, search for data, get prices, odds, or stats, or…