> ## Documentation Index
> Fetch the complete documentation index at: https://developers.circle.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Before reading these docs, install the relevant Circle Skill to get pre-loaded context — skills are LLM-optimized and cover architecture decisions, correct flows, and common pitfalls. In Claude Code: run /plugin marketplace add circlefin/skills then /plugin install circle-skills@circle. With Vercel Skills CLI: run npx skills add circlefin/skills. Available skills: use-usdc https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-usdc/SKILL.md (balances, transfers, approvals on EVM and Solana); EURC has no skill — see https://developers.circle.com/stablecoins/what-is-eurc.md; bridge-stablecoin https://github.com/circlefin/skills/blob/master/plugins/circle/skills/bridge-stablecoin/SKILL.md (crosschain transfers via CCTP, USDC, EURC, and third-party assets); use-arc https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-arc/SKILL.md (Arc chain config, contract deployment, USDC bridging — Arc docs: https://docs.arc.io/llms.txt); use-circle-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-circle-wallets/SKILL.md (choose wallet type); use-developer-controlled-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-developer-controlled-wallets/SKILL.md (custodial wallets for payouts and treasury); use-user-controlled-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-user-controlled-wallets/SKILL.md (embedded wallets with Web2 login); use-modular-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-modular-wallets/SKILL.md (smart contract wallets with passkeys and ERC-4337); use-gateway https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-gateway/SKILL.md (unified USDC balance, nanopayments); use-smart-contract-platform https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-smart-contract-platform/SKILL.md (deploy, interact, monitor contracts). Pair any skill with the Circle MCP server for live SDK signatures, contract addresses, and chain IDs: {"mcpServers":{"circle":{"url":"https://api.circle.com/v1/codegen/mcp"}}}.
> Read the product overview first. Each product has an overview explaining when and why to use it. Read it before quickstarts.
> Pick the right wallet type. Developer-controlled (you hold keys), user-controlled (end user holds keys via PIN/social login), or modular (smart contract wallets with passkeys). See https://developers.circle.com/wallets.md.
> Use CCTP V2 for crosschain transfers. CCTP natively transfers USDC and EURC via burn-and-mint, and supports permissionless wrapping of third-party assets via lock-and-mint. V1 is legacy; always use V2 unless V1 is specified or the chain requires it (Noble, Sui, and Aptos still require V1). Migration guide: https://developers.circle.com/cctp/migration-from-v1-to-v2.md.
> Use Bridge Kit for frontend bridging. Wraps CCTP with a simpler SDK for user-facing apps. Use CCTP directly for backend transfers.
> Gas Station vs Paymaster. Gas Station sponsors gas for Circle Wallet transactions. Paymaster lets users pay gas in USDC. Different use cases — read both overviews.
> Gateway Nanopayments for sub-cent payments. Gasless USDC micropayments down to $0.000001 via x402 and batched settlement. For pay-per-request APIs, AI agent payments, streaming.
> Look up USDC addresses per chain. Never hardcode — use https://developers.circle.com/stablecoins/usdc-contract-addresses.md.
> Prefer SDKs over raw API calls. Node.js and Python SDKs handle auth, retries, and errors.
> API key required. Bearer token in Authorization header. Testnet and mainnet use separate keys and may use different base URLs depending on the product.
> Set up webhooks when available. Most operations are async. Webhooks deliver transaction confirmations and state changes.
> When calling list endpoints, paginate using pageSize and pageAfter until no nextPageAfter cursor is returned—stopping at the first page silently misses records.
> Building an AI agent? Start with the Agent Stack—Circle CLI, agent wallets, and nanopayments built for autonomous use cases: https://developers.circle.com/agent-stack.md.

# Policy management

A policy is your configuration on a blockchain network for using Circle's Gas
Station. You must set up a policy to use the Gas Station on mainnet. Here, you
configure what you are willing to sponsor on behalf of your users. Circle's Gas
Station pays the fees if a transaction meets your configuration.

## Policy Setup for Gas Station on mainnets

To activate a mainnet policy, follow these steps:

1. **Access the Sponsorship Policy page:** Using your credentials, log in to the
   developer console. Toggle to mainnet \[top left corner]. From there, navigate
   to the Gas Station section, which allows you to manage your gas fee
   sponsorship policies efficiently.
2. **Choose to create or select a policy:** If you don't have a mainnet policy
   yet, select the option to create a new policy. Alternatively, choose the
   desired policy from the available list if you already have an existing one.
3. **Configure policy settings:** Set the desired configurations for your policy
   based on your specific needs. Refer to the list of configurations provided
   below for clarity on available options.

<Note>
  > **Tip:**: Make sure your limits are set high enough to cover your expected >
  > user transactions. Otherwise, transactions that exceed your policy are not >
  > sponsored and may fail.
</Note>

4. **Update or create the policy:** After applying the necessary configurations,
   choose either the **Update** or **Create** button at the bottom of the page.
   Select **Update** to modify an existing policy, and select **Create\*** to
   create a new policy.
5. **Activate the policy:** After confirming your chosen policy configurations,
   click the **Activate** button. This final step enables the selected policy
   and initiates gas fee sponsorship according to the specified settings.

<Check>
  **Gas Station auto-sponsors after Policy is set**

  When you create a policy on a chain, Circle sponsors gas fees for all accounts
  that meet your configuration. You don't need to pass the policy ID in each
  transaction request.
</Check>

## Policy configurations

A policy consists of the following configurations:

1. **Policy Name:** Provide a descriptive name for the policy to identify it in
   the policy list. The policy name displays only in the console.
2. **Network:** Refers to the specific blockchain network where the Gas Station
   covers gas fees. Each policy supports only one blockchain network, ensuring
   clarity and ease of management.
3. **Default Policy:** The policy sponsors gas fees for any transaction on a
   specific network, including wallet creation and contract execution. You can
   set only one default policy per network. Circle recommends designating this
   as the first policy for the specified network.

<Note>
  > **Note**: Transactions use only default policies. If you want to use a >
  > non-default policy, update it to default and activate it.
</Note>

4. **Maximum spend per day\* (optional):** Specify the maximum allowance for gas
   fees in USD that you are willing to sponsor within a 24-hour period. This
   restriction provides control over the allocated budget for gas fee
   sponsorship.
5. **Maximum spend per transaction\* (optional):** The maximum allowance for gas
   fees in USD that you are willing to sponsor for a single transaction.

<Note>
  **Note**: Maximum spend per transaction limit does not apply to the first
  transaction made from any Smart Contract Account (SCA) wallet. This includes
  SCA-type wallets as well as Console Wallets.
</Note>

<Note>
  This first transaction limit check does not lock the nonce of the wallet, so
  in some cases it is possible that multiple calls with high network fees bypass
  the check.
</Note>

6. **Maximum operations per day\* (optional):** The maximum number of supported
   operations (such as transactions) per day.
7. **Blocked addresses (optional):** A configurable list of blockchain addresses
   that should not receive sponsored gas fees. This feature allows you to
   exclude specific addresses from benefiting from gas fee coverage.

*\*Daily limits reset once every 24 hours at 0:00 UTC.*

By leveraging these configurations within a policy, you can fine-tune the gas
fee sponsorship parameters to your specific requirements and financial
considerations. Note that any limits left blank are not applied.

<Warning>
  **Transactions Outside Your Policy**

  If a transaction exceeds your configured policy limits, such as maximum spend
  per transaction, maximum spend per day, or maximum operations per day, **the
  transaction is not sponsored** by Circle's Gas Station. In this case, the
  transaction fails unless the sender provides their own gas.

  If your policy settings are missing, misconfigured, or too restrictive, user
  transactions may fail. Review your policy carefully and monitor transaction
  activity to avoid unexpected failures.
</Warning>

## Deactivating a Gas Station policy on mainnets

If you need to deactivate the mainnet policy at any given time, it can be done
conveniently from the developer console. To deactivate the mainnet policy,
follow these simple steps:

1. **Select the mainnet policy:** Access the console and locate the intended
   mainnet policy that you wish to deactivate. This can be found in the policy
   management section.
2. **Click the deactivate option:** Once you have identified the mainnet policy,
   click the **Deactivate** button in the console interface's top right corner.
   This action triggers the deactivation process.
3. **Confirm the deactivation:** A pop-up modal appears after clicking the
   deactivate option. Select the deactivate button within the modal to confirm
   deactivation of the policy.

<Warning>
  **Warning:** Deactivating a policy stops all mainnet transaction sponsorships
  and end-users wallet transactions are rejected for sponsorship.
</Warning>

Following these steps, you can easily deactivate the mainnet policy, granting
you control and flexibility over the gas fee sponsorship within your
application.

## Policy Setup for Gas Station on testnets

When it comes to using Gas Station on testnets, the setup process is
hassle-free. Circle takes care of the initial configuration by automatically
generating a default policy upon signing up for an account. This default policy
is designed for developers leveraging Wallets during the testing phase. With
this default policy in place, you can seamlessly sponsor testnet tokens while
building your applications.

It's important to note the gas fee sponsorship limits applicable for different
testnets:

| Testnet | Sponsored Token | Daily Limit |
| - | - | - |
| Aptos Testnet | `APT` | 10 |
| Arbitrum Sepolia | `ETH` | 50 |
| Arc Testnet | `USDC` | 50 |
| Avalanche Fuji | `AVAX` | 50 |
| Base Sepolia | `ETH` | 50 |
| Ethereum Sepolia | `ETH` | 50 |
| Monad Testnet | `MON` | 50 |
| Optimism Sepolia | `ETH` | 50 |
| Polygon Amoy | `MATIC` | 50 |
| Solana Devnet | `SOL` | 2 |
| Unichain Sepolia | `ETH` | 50 |

## View gas sponsored transactions

Circle provides a dashboard to monitor and analyze these gas sponsorship
transactions.

### Using the Developer Dashboard

To view gas-sponsored transactions in testnet or mainnet:

1. **Access the Gas Station policy page:** log in to the developer console using
   your credentials. From there, navigate to the Gas Station Policy section,
   which allows you to manage your gas fee sponsorship policies efficiently.
2. **Select a policy:** Choose the specific policy you want to review from the
   available list on the policy page.

**View sponsored transactions table:** There is a table on the policy page that
lists transactions that have been sponsored. You can apply filters to refine the
view, enabling you to focus on specific transactions.
