> ## Documentation Index
> Fetch the complete documentation index at: https://injectivelabs-mintlify-6abb8c3a.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Bridge & Deploy a Token

> Bring an existing ERC-20 from Ethereum to Injective via Peggy, create an MTS token pair, and launch a spot market.

This guide walks through bringing an existing ERC-20 token from Ethereum to Injective and making it fully operational - visible in MetaMask, tradeable on the native orderbook, and composable with DeFi protocols.

## What You Get Out of the Box

> **[Peggy Bridge](/developers-native/bridges/ethereum)**
>
> Decentralized, validator-operated bridge between Ethereum and Injective. Your ERC-20 becomes a native Injective denom.

> **[MultiVM Token Standard](/developers-evm/multivm-token-standard)**
>
> One token, one balance across EVM and Native Injective. MetaMask, Solidity contracts, and native modules all see the same asset.

> **[Native CLOB](/developers-native/injective/exchange)**
>
> Launch a spot market for your token in one transaction. On-chain orderbook with maker rebates and FBA protection.

> **[USDC Liquidity](/developers-defi/usdc-stablecoin)**
>
> Native USDC already live on Injective via CCTP. Pair your token against USDC for instant liquidity.

## Step by Step

![Bridge and deploy flow: Ethereum to Injective](https://mintcdn.com/injectivelabs-mintlify-6abb8c3a/DU0krLtlJ5bBKhNu/img/bridge-deploy-flow.svg?fit=max\&auto=format\&n=DU0krLtlJ5bBKhNu\&q=85\&s=7e79628aa527ad0e55870250929fe6ef)

### 1. Bridge via Peggy

Send your ERC-20 token from Ethereum to Injective using the Peggy bridge contract.

On Ethereum, two transactions:

1. **Approve** the Peggy contract to spend your token
2. **sendToInjective** on the Peggy contract with the token address, your Injective address, and amount

The first bridge transaction for a given ERC-20 automatically creates the denom on Injective as `peggy0x{CONTRACT_ADDRESS}`.

> [!NOTE]
>
> Peggo relayers typically process deposits within 2 minutes. You can verify your balance via the [Injective testnet explorer](https://testnet.explorer.injective.network) or the REST API.

For full details, see the [Peggy bridge guide](/developers-native/bridges/ethereum).

### 2. Create MTS Token Pair

Create a token pair to make your Peggy denom accessible from the EVM side (MetaMask, Solidity contracts, Blockscout).

```bash theme={null}
injectived tx erc20 create-token-pair \
  "peggy0xYOUR_TOKEN_ADDRESS" \
  --from=YOUR_KEY \
  --keyring-backend=file \
  --chain-id=injective-888 \
  --node=https://testnet.sentry.tm.injective.network:443 \
  --gas=3000000 \
  --gas-prices=160000000inj \
  --yes
```

> [!WARNING]
>
> **Gas requirement:** This transaction requires `--gas=3000000` minimum. The ERC20 module internally deploys an EVM contract with a hardcoded 2M gas limit. Any gas value below \~2.1M will fail with a `gas computation overflow/underflow` error.

For Peggy denoms, **anyone** can create the token pair - no admin required. The module deploys a `FixedSupplyBankERC20` contract automatically.

After the transaction succeeds, query the new ERC20 address:

```bash theme={null}
curl -s "https://testnet.sentry.lcd.injective.network:443/injective/erc20/v1beta1/all_token_pairs" \
  | jq '.token_pairs[] | select(.bank_denom | contains("YOUR_TOKEN_ADDRESS"))'
```

For full details, see the [ERC20 module docs](/developers-evm/erc20-module).

### 3. Set Token Metadata

Token metadata (name, symbol, decimals) determines how your token appears in MetaMask, Blockscout, and any EVM tool that calls `symbol()`, `name()`, or `decimals()` on the contract.

> [!WARNING]
>
> Peggy-bridged tokens do not inherit metadata from Ethereum automatically. The MTS ERC20 contract reads metadata from Injective's bank module. If bank metadata is not set, the token will display with a blank name, blank symbol, and 0 decimals.

**For Peggy denoms (`peggy0x...`):** Metadata must be set via a [governance proposal](/developers/testnet-proposals). This is because Peggy denoms have no admin authority - only governance can write to the bank module's metadata store. See the [token metadata guide](/developers/assets/token-metadata) for the full proposal template and how to coordinate with the team for testnet validator votes.

**For TokenFactory denoms (`factory/...`):** The denom admin can call `MsgSetDenomMetadata` directly. See [TokenFactory examples](/developers-native/examples/token-factory).

**For frontend display in Injective dApps:** Submit your token to [injective-lists](https://github.com/InjectiveLabs/injective-lists/blob/master/CONTRIBUTING.md). This is separate from on-chain metadata and does not affect MetaMask or Blockscout.

## What You Can Do Next

Once your token is live on Injective with MTS (after Step 3), these are all independent options:

> **[Launch a Spot Market](/developers-defi/market-launch)**
>
> Create an orderbook for your token on the native CLOB. One transaction, maker rebates, 40% fee share.

> **[DeFi Integration](/developers-defi/defi-integration)**
>
> Build lending protocols, collateralized borrowing, or yield products using your token with Injective's native modules and precompiles.

> **[Set Up Oracle Feeds](/developers-defi/provider-oracle)**
>
> Register a custom oracle provider to publish off-chain valuations on-chain for pricing or collateral.

> **[Add Permissions](/developers-native/injective/permissions)**
>
> Role-based compliance controls for institutional use. Map consortium roles to on-chain permissions with contract hooks for KYC/AML.

> **[Vault Strategies](/developers-defi/defi-integration#vaults)**
>
> Automated yield strategies on [Mito](https://mito.fi) or custom vault contracts.

> **[Cross-Chain Flows](/developers-defi/usdc-stablecoin)**
>
> Native USDC via CCTP for cross-chain transfers. Bridge proceeds to Ethereum or other supported networks.

## Working Example

The [ACME bridge example](https://github.com/InjectiveLabs/inj-examples/tree/main/examples/acme-bridge) provides a complete working codebase that covers every step above - from deploying an ERC-20 on Sepolia through creating the MTS token pair and setting metadata.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.