use-gateway

Integrate Circle Gateway for unified USDC balances and crosschain transfers across EVM chains and Solana.

Updated Mar 18, 2026
One-click install
npx skills add https://github.com/Surojit012/CMO --skill use-gateway-surojit012
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: use-gateway
Source: https://github.com/Surojit012/CMO/tree/main/.agents/skills/use-gateway
Command: npx skills add https://github.com/Surojit012/CMO --skill use-gateway-surojit012

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires viem, @circle-fin/developer-controlled-wallets, @coral-xyz/anchor, @solana/web3.js, @solana/spl-token, @solana/buffer-layout, bs58, bn.js, and includes references (resource) components.

What problem does it solve? Moving USDC between blockchains normally requires waiting for source-chain finality and managing separate balances on every chain. This Skill guides you through Circle Gateway integration so users hold one unified USDC balance across 11 EVM chains plus Solana and transfer funds in under 500ms via deposit, burn intent, attestation, and mint workflows. ## Core Features & Use Cases - Unified Balance Deposits: Deposit USDC into Gateway Wallet contracts on EVM (viem, browser wallets, or Circle Developer-Controlled Wallets) and Solana (Anchor) to build a chain-agnostic balance. - Instant Crosschain Transfers: Sign EIP-712 burn intents on EVM or prefixed Ed25519 payloads on Solana, submit them to the Gateway REST API, and mint on the destination chain with gatewayMint. - Balance Queries: Query unified balances across chains via the Gateway /balances endpoint using domain ID and depositor pairs. - Use Case: A payments app pools user USDC deposits on Ethereum and Base, then lets users instantly spend on Arbitrum or Solana without bridging delays or per-chain liquidity management. ## Quick Start Ask the assistant to transfer 5 USDC from your Arc Testnet unified balance to Base Sepolia using Circle Gateway with a self-managed wallet.

Frequently Asked Questions about use-gateway

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I transfer USDC across chains with Circle Gateway?

Deposit USDC into the Gateway Wallet contract on any supported chain, then create and sign a burn intent specifying source and destination domains. Submit it to the Gateway /transfer API to receive an attestation, then call gatewayMint on the destination chain to complete the transfer.

How do I deposit USDC into a Gateway unified balance?

Approve the Gateway Wallet contract to spend your USDC, then call its deposit(address,uint256) method. Never send USDC directly to the contract with a plain ERC-20 transfer, as those funds will not be credited to your unified balance.

Which blockchains does Circle Gateway support?

Gateway supports 11 EVM chains including Ethereum, Arbitrum, Base, Polygon, and Avalanche, plus Solana, on both mainnet and testnet, and additionally Arc testnet. Each chain is identified by a numeric domain ID used in burn intents.

Can I use Phantom wallet for Solana Gateway transfers?

No, Solana wallet compatibility for Gateway is limited. Only Solflare supports signing the arbitrary messages required for Gateway burn intents; Phantom and most other Solana wallets reject the signing request.

When should I use CCTP instead of Circle Gateway?

Use CCTP or Bridge Kit for simple point-to-point transfers without a unified balance, especially infrequent or ad-hoc transfers where maintaining a deposited balance is not worthwhile. Gateway is better when you need sub-500ms transfers or capital pooled across chains.

Why must Solana destination recipients be token accounts?

The destinationRecipient on Solana must be a USDC token account (ATA or SPL token account), not a raw wallet address. Deriving an ATA from an address that is already a token account causes permanent fund loss, so verify with getAccount() first.