> For the complete documentation index, see [llms.txt](https://docs.astralbeam.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.astralbeam.io/using-astralbeam/supported-tokens.md).

# Supported Tokens

AstralBeam supports bridging multiple ERC-20 tokens from EVM chains to Casper Network. This page lists all currently supported tokens and their contract addresses.

## Overview

The bridge uses a **lock/mint** mechanism for EVM → Casper and **burn/unlock** for Casper → EVM:

| Direction    | Source Token | Destination Token |
| ------------ | ------------ | ----------------- |
| EVM → Casper | ERC-20       | CEP-18 (wrapped)  |
| Casper → EVM | CEP-18       | ERC-20 (original) |

## Supported Tokens

### USDC (USD Coin)

Circle's stablecoin pegged to the US Dollar.

| Property | Value      |
| -------- | ---------- |
| Symbol   | USDC       |
| Decimals | 6          |
| Type     | Stablecoin |

**Contract Addresses:**

| Network          | Address                                                                 |
| ---------------- | ----------------------------------------------------------------------- |
| Ethereum Sepolia | `0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238`                            |
| Base Sepolia     | `0x036CbD53842c5426634e7929541eC2318f3dCF7e`                            |
| Casper Testnet   | `hash-62d62d5cb43d095b9096ecfe3a3f2bd4d2a1df4020cd9cda94594edb77fedf38` |

### WETH (Wrapped Ether)

Wrapped version of native ETH, compliant with ERC-20.

| Property | Value          |
| -------- | -------------- |
| Symbol   | WETH           |
| Decimals | 18             |
| Type     | Wrapped Native |

**Contract Addresses:**

| Network          | Address                                                                 |
| ---------------- | ----------------------------------------------------------------------- |
| Ethereum Sepolia | `0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14`                            |
| Base Sepolia     | `0x4200000000000000000000000000000000000006`                            |
| Casper Testnet   | `hash-862d4cb8812301301d3aadaf3b543cb4b6a8bf7dd3fbfb8dbd6a7a8a46fd0485` |

### LINK (Chainlink)

Chainlink's native token used for oracle services.

| Property | Value         |
| -------- | ------------- |
| Symbol   | LINK          |
| Decimals | 18            |
| Type     | Utility Token |

**Contract Addresses:**

| Network          | Address                                                                 |
| ---------------- | ----------------------------------------------------------------------- |
| Ethereum Sepolia | `0x779877A7B0D9E8603169DdbD7836e478b4624789`                            |
| Base Sepolia     | `0xE4aB69C077896252FAFBD49EFD26B5D171A32410`                            |
| Casper Testnet   | `hash-617b3db3bb3af35db464fa494f07a5dec165093a1801b4a6961b6905473941c5` |

## Token Standards

### ERC-20 (EVM Chains)

The standard token interface on Ethereum and compatible chains:

```solidity
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}
```

### CEP-18 (Casper Network)

The Casper equivalent of ERC-20, implementing the Casper token standard:

* **Named keys**: Tokens are stored in named keys under user accounts
* **Contract hash**: Each token has a unique contract hash identifier
* **Decimals**: Preserved from the original ERC-20 token

## Adding Tokens to Your Wallet

### MetaMask (EVM)

1. Open MetaMask
2. Click "Import tokens" at the bottom
3. Select "Custom token"
4. Paste the token contract address
5. Symbol and decimals will auto-populate
6. Click "Add Custom Token"

### Casper Wallet

CEP-18 tokens are automatically detected when you have a balance. If not visible:

1. Open Casper Wallet
2. Navigate to "Tokens" section
3. Click "Add Token"
4. Enter the CEP-18 contract hash
5. Confirm the token details

## Viewing Token Balances

### On Block Explorers

**Ethereum/Base:**

1. Go to [sepolia.etherscan.io](https://sepolia.etherscan.io) or [sepolia.basescan.org](https://sepolia.basescan.org)
2. Search for your address
3. Click "Token Holdings" tab

**Casper:**

1. Go to [testnet.cspr.live](https://testnet.cspr.live)
2. Search for your account
3. Click "Tokens" tab

### Via API

Query the bridge API for token information:

```bash
# Get all supported tokens
curl "https://api.csprbridge.com/api/v1/tokens"

# Response includes:
# - Token symbol, name, decimals
# - Contract addresses per chain
# - Current liquidity
```

## Token Liquidity

### Understanding Liquidity

The bridge maintains liquidity pools on each chain:

* **EVM Locker**: Holds locked ERC-20 tokens
* **Casper TokenFactory**: Can mint/burn wrapped CEP-18 tokens

### Checking Liquidity

Before bridging large amounts, verify sufficient liquidity exists:

```bash
# Via API
curl "https://api.csprbridge.com/api/v1/tokens" | jq '.tokens[] | {symbol, liquidity}'
```

### Liquidity Limits

| Scenario     | Behavior                           |
| ------------ | ---------------------------------- |
| EVM → Casper | Always succeeds (mints new CEP-18) |
| Casper → EVM | Limited by ERC-20 locked in locker |

## Multi-Chain Support

### Chain-Specific Tokens

Each EVM chain has its own token addresses. Tokens are **not** interchangeable between chains:

* USDC on Sepolia ≠ USDC on Base Sepolia
* Bridged CEP-18 tokens track their source chain

### Source Chain Tracking

When you bridge from an EVM chain to Casper:

* The CEP-18 token records the source chain ID
* When bridging back, tokens return to the original chain

### Example Flow

```
Sepolia USDC → Lock on Sepolia → Mint CEP-18 (source: Sepolia)
                                        ↓
CEP-18 (source: Sepolia) → Burn → Unlock on Sepolia ONLY
```

## Native Token Bridging

### CSPR → wCSPR

Native CSPR can be wrapped and bridged:

1. Lock native CSPR on Casper
2. Receive wCSPR (ERC-20) on EVM chain
3. Bridge back to unlock native CSPR

### ETH → wETH

For bridging ETH:

1. First wrap ETH to WETH on the EVM chain
2. Bridge WETH to Casper (receives CEP-18)
3. Bridge back to receive WETH
4. Unwrap WETH to ETH if desired

## Future Token Support

New tokens can be added to the bridge by:

1. Deploying locker contracts on EVM chains
2. Registering token mappings in TokenFactory
3. Updating relayer configurations
4. Adding to the frontend token list

Contact the bridge operators to request new token support.

## Token Security

### Verified Contracts

All token contracts are:

* Deployed from verified source code
* Audited for security vulnerabilities
* Using standard implementations (OpenZeppelin)

### Supply Integrity

The bridge maintains 1:1 backing:

* CEP-18 minted = ERC-20 locked
* Total CEP-18 supply ≤ Total ERC-20 in locker

### Checking Token Authenticity

Always verify you're using official token addresses:

1. Check this documentation
2. Verify on block explorers
3. Cross-reference with official token websites


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.astralbeam.io/using-astralbeam/supported-tokens.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
