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

# Bridge

> Canonical USDC in and out of Arc via Circle CCTP v2

## What the bridge is

The Lunya bridge moves USDC between Arc and other EVM chains using **Circle's Cross-Chain Transfer Protocol (CCTP) v2** — the transfer mechanism operated by the issuer of USDC itself.

## How it works

<Steps>
  <Step title="Burn on the source chain">
    Your USDC is burned — destroyed, not deposited into a bridge contract — on the chain you are leaving.
  </Step>

  <Step title="Circle attests">
    Circle's attestation service observes the burn and signs an attestation for it.
  </Step>

  <Step title="Mint on the destination">
    The attestation is presented on the destination chain, and Circle's contract mints the same amount of USDC there.
  </Step>
</Steps>

Why this design matters:

* **No wrapped tokens** — what arrives is **canonical USDC**, minted by Circle, not an IOU issued by a bridge
* **No third-party validator set** — the only signature trusted is Circle's, the same entity already trusted by holding USDC at all
* **No liquidity pools to drain** — burn-and-mint means there is no honeypot of locked tokens on either side

## Fees and speed

* **Fees come out of the mint, not on top** — the sender is debited exactly the amount they send; Circle's fee (basis points of the amount, plus a flat forwarding charge where used) is deducted from what the recipient receives on the destination
* **Fast transfer** — on chains that support it, transfers clear against a lower finality threshold instead of waiting for full source-chain finality; elsewhere, plan for the source chain's finality time
* The app quotes the exact fee and expected time before you send

## Supported chains

The bridge currently runs against **Arc testnet** — Circle's CCTP supports Arc testnet only for now, so sources are the corresponding testnets: 21 source chains including Ethereum (Sepolia), Base, Arbitrum, Optimism, Avalanche, Polygon, Unichain, Linea, Monad, Sei, Hyperliquid, Sonic, Worldchain, Ink, and Plume. When Arc mainnet ships, the mechanism is unchanged — only the source table grows up with it.

## The decimals detail

On every source chain USDC is a 6-decimal ERC-20. On Arc it is also the **native gas token**, which as an EVM native has 18 decimals — the same balance simply has two views, and every figure the bridge shows is in the familiar 6-decimal USDC unit. The value never changes crossing over; only its representation does.

## Things to know

* **What arrives is canonical USDC** — minted by Circle against its own attestation, not a wrapped token
* **Keep gas on the source side** — the burn transaction needs the source chain's gas token; on Arc, the USDC you receive *is* the gas token
* **Transfers are not instant** — even fast transfers wait for a finality threshold; the app shows the expected time up front
