use-gateway
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, unified balance, crosschain USDC, instant transfer, chain abstraction, Gateway Wallet, Gateway Minter, gatewayMint, burn intent, crosschain liquidity, payment routing, capital efficiency, permissionless transfer.
What this skill does
## 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 in this order: 1. Choose wallet model: self-managed or Circle Wallets. 2. Choose source network family: EVM or Solana. 3. Choose destination network family: EVM or Solana. 4. If the EVM source depositor is an SCA using Circle Developer-Controlled Wallets, switch to `references/transfer-evm-delegate.md`. 5. If the user has a self-managed SCA flow, verify the signing and delegate approach against the canonical Gateway docs before reusing the Circle Wallets delegate reference. 6. Do not select `references/transfer-evm-delegate.md` as the single best reference for a self-managed SCA prompt unless the user explicitly says they are using Circle Developer-Controlled Wallets. When responding: - First identify and use the single best matching reference file for the user's scenario. - Prefer adapting the existing reference pattern over creating a new workspace or fresh scaffold when the current refs already cover the case. - If you do generate code, make it a targeted adaptation of the matched reference rather than inventing a parallel implementation path. - If the user asks about a self-managed SCA on EVM and no exact reference exists, say that no single exact reference file matches; explain that delegate-style signing is required and that the Circle Wallets delegate reference is only a pattern to verify against the canonical Gateway docs. ## 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. -
Related in Sales & CRM
process-mapper
IncludedUse when a BizOps lead, COO, or process-improvement owner needs to document an end-to-end business process (procurement, employee onboarding, incident handoff, customer-onboarding, claims adjudication) in BPMN-style notation, measure cycle times by stage, surface where work spends most of its time waiting vs. being worked, and quantify the gap between processing time and total elapsed time. Pairs Lean / Six Sigma / Theory-of-Constraints canon with deterministic stdlib-only Python tools to produce a process map, a ranked bottleneck list (with severity + root-cause hypothesis), and a cycle-time analysis (P50, P90, value-add ratio, Little's-Law throughput). Distinct from sales-pipeline, system-reliability (SLO), and strategic-OKR work — this is tactical process documentation for internal operations.
payment-integration
IncludedIntegrate payments with SePay (VietQR), Polar, Stripe, Paddle (MoR subscriptions), Creem.io (licensing). Checkout, webhooks, subscriptions, QR codes, multi-provider orders.
customer-success-manager
IncludedMonitors customer health, predicts churn risk, and identifies expansion opportunities using weighted scoring models for SaaS customer success
sales-engineer
IncludedAnalyzes RFP/RFI responses for coverage gaps, builds competitive feature comparison matrices, and plans proof-of-concept (POC) engagements for pre-sales engineering. Use when responding to RFPs, bids, or proposal requests; comparing product features against competitors; planning or scoring a customer POC or sales demo; preparing a technical proposal; or performing win/loss competitor analysis. Handles tasks described as 'RFP response', 'bid response', 'proposal response', 'competitor comparison', 'feature matrix', 'POC planning', 'sales demo prep', or 'pre-sales engineering'.
customer-success-manager
IncludedMonitors customer health, predicts churn risk, and identifies expansion opportunities using weighted scoring models for SaaS customer success
sales-engineer
IncludedAnalyzes RFP/RFI responses for coverage gaps, builds competitive feature comparison matrices, and plans proof-of-concept (POC) engagements for pre-sales engineering. Use when responding to RFPs, bids, or proposal requests; comparing product features against competitors; planning or scoring a customer POC or sales demo; preparing a technical proposal; or performing win/loss competitor analysis. Handles tasks described as 'RFP response', 'bid response', 'proposal response', 'competitor comparison', 'feature matrix', 'POC planning', 'sales demo prep', or 'pre-sales engineering'.