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

# Supported Chains & Tokens

> Browse 20,000+ tokens across 125+ blockchains available for onramp purchases

<Note>
  Asset availability is based on liquidity and network stability. Only assets with `orderConfigMap.buy.status = active` are displayed to users.
</Note>

## Network Coverage

<div style={{display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '1rem'}}>
  <Card title="125+ Blockchains" icon="layer-group">
    Comprehensive coverage across all major networks
  </Card>

  <Card title="20,000+ Tokens" icon="coins">
    Verified assets from partner liquidity sources
  </Card>

  <Card title="EVM & Non-EVM" icon="code-branch">
    Support for L1, L2, sidechains and rollups
  </Card>

  <Card title="Dynamic Availability" icon="arrows-rotate">
    Real-time updates per payment method & region
  </Card>
</div>

## Supported Network Types

<Card title="Skip to Token Explorer" icon="arrow-down" href="#supported-assets-2">
  Jump directly to the interactive token list to search and filter supported assets.
</Card>

<Tabs>
  <Tab title="Layer 1">
    **Major L1 blockchains:**

    * Ethereum
    * Bitcoin
    * Solana
    * Avalanche
    * Cardano
    * Tezos
    * Flow
    * And more...
  </Tab>

  <Tab title="Layer 2">
    **Ethereum L2 solutions:**

    * Arbitrum
    * Optimism
    * Base
    * Polygon zkEVM
    * zkSync
    * Scroll
    * Linea
    * Blast
    * Mode
  </Tab>

  <Tab title="Sidechains">
    **Popular sidechains:**

    * Polygon
    * BNB Chain
    * Gnosis
    * Ronin
    * Moonbeam
    * Moonriver
  </Tab>

  <Tab title="Alt L1s">
    **Alternative L1 networks:**

    * Sui
    * Aptos (coming soon)
    * TON
    * Tron
    * Fantom
    * Cronos
    * Kaia
  </Tab>
</Tabs>

## Popular Networks

<AccordionGroup>
  <Accordion title="Ethereum Ecosystem" icon="ethereum">
    **Mainnet + L2s:**

    * Ethereum
    * Arbitrum One
    * Optimism
    * Base
    * zkSync Era
    * Polygon zkEVM
    * Scroll
    * Linea
    * Blast
    * Taiko
    * Mantle

    <Check>Full ERC-20 token support with automatic contract verification</Check>
  </Accordion>

  <Accordion title="High-Performance Chains" icon="bolt">
    **Fast & scalable networks:**

    * Solana
    * Sui
    * Avalanche C-Chain
    * BNB Smart Chain
    * Polygon
    * Fantom

    <Info>Optimized for gaming, DeFi and high-frequency applications</Info>
  </Accordion>

  <Accordion title="Bitcoin & Forks" icon="bitcoin">
    **Bitcoin networks:**

    * Bitcoin (BTC)
    * Bitcoin Cash (BCH)
    * Litecoin (LTC)
    * Dogecoin (DOGE)
    * Rootstock (RSK)

    <Tip>Native BTC purchases with direct wallet delivery</Tip>
  </Accordion>

  <Accordion title="Emerging Networks" icon="rocket">
    **New & growing chains:**

    * Berachain
    * Monad
    * Unichain
    * Abstract
    * Sonic
    * Soneium
    * World Chain
    * Ink

    <Warning>Availability may vary by region and liquidity</Warning>
  </Accordion>
</AccordionGroup>

## Asset Management

<Steps>
  <Step title="Automatic Verification" icon="shield-check">
    All tokens are verified from partner liquidity sources before being made available
  </Step>

  <Step title="Risk Monitoring" icon="chart-line">
    Continuous monitoring for high-risk assets with automatic removal when necessary
  </Step>

  <Step title="Liquidity-Based Display" icon="water">
    Only tokens with sufficient liquidity and active buy routes are shown
  </Step>
</Steps>

## Real-Time Asset Explorer

<Info>
  Use the interactive explorer below to search and filter supported assets. Data is pulled directly from our live API.
</Info>

### Supported Assets

**1,128 tokens · 76 blockchains**

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/rampnow/images/onramp/crypto.png" alt="Real-time asset explorer interface" />
</Frame>

<Tip>
  The asset list updates automatically based on:

  * Current liquidity availability
  * Payment method compatibility
  * Network status
</Tip>

## Popular Token Categories

<div style={{display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '1rem'}}>
  <Card title="Stablecoins" icon="dollar-sign">
    USDC, USDT, DAI, USDE, FDUSD, PYUSD and 50+ more
  </Card>

  <Card title="Native Tokens" icon="gem">
    ETH, BTC, SOL, AVAX, BNB, MATIC and all major L1 tokens
  </Card>

  <Card title="DeFi Tokens" icon="chart-network">
    AAVE, UNI, LINK, CRV, LDO and 100+ DeFi protocols
  </Card>

  <Card title="Gaming Assets" icon="gamepad">
    AXS, SAND, MANA, IMX, GALA and gaming tokens
  </Card>

  <Card title="Memecoins" icon="face-smile">
    DOGE, SHIB, PEPE, WIF, BONK and trending memes
  </Card>

  <Card title="LSTs & LRTs" icon="layer-group">
    stETH, rETH, ezETH, weETH and liquid staking derivatives
  </Card>
</div>

## Network Expansion

<Note>
  Rampnow continuously expands blockchain coverage based on:

  * Partner and customer demand
  * Network stability and maturity
  * Liquidity provider support
</Note>

**Request a new chain or token:**
Contact our team to discuss adding support for specific assets or networks.

<div style={{display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '1rem'}}>
  <Card title="Contact Sales" icon="envelope" href="https://rampnow.io/en/list#list-token-form">
    Reach out via our Contact & Support page
  </Card>

  <Card title="Email Us" icon="paper-plane">
    Send details to `admin@rampnow.io`
  </Card>
</div>

## Real-time explorer

Use the explorer below to browse supported tokens and chains pulled directly from our API.

export const TokenExplorer = () => {
  const [tokens, setTokens] = useState([]);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState(null);
  const [searchQuery, setSearchQuery] = useState("");
  const [selectedChain, setSelectedChain] = useState("all");
  const [selectedProduct, setSelectedProduct] = useState("all");
  useEffect(() => {
    async function load() {
      try {
        const res = await fetch("https://api.rampnow.io/api/ramp/v1/ramp_order/quote/config?apiKey=pk_live_zXuMmMzFAbfnMPQnwfEaMkabwPfKsVsg");
        if (!res.ok) throw new Error("Failed to load config");
        const json = await res.json();
        const assetConfigs = json?.data?.assetConfigs || ({});
        const normalized = Object.entries(assetConfigs).filter(([assetKey, assetConfig]) => typeof assetKey === "string" && assetKey.includes(":") && assetConfig?.orderTypeConfigs).map(([assetKey, assetConfig]) => {
          const [symbol, chain] = assetKey.split(":");
          const orderTypeConfig = assetConfig.orderTypeConfigs || ({});
          const products = [];
          if (orderTypeConfig?.["buy"]?.status?.toLowerCase() === "active") products.push("Onramp");
          if (orderTypeConfig?.["sell"]?.status?.toLowerCase() === "active") products.push("Offramp");
          return {
            symbol: symbol.trim(),
            name: symbol.trim(),
            chain: chain.trim(),
            products
          };
        }).filter(t => t.products.length > 0);
        setTokens(normalized);
        setLoading(false);
      } catch (e) {
        setError("Unable to load supported assets.");
        setLoading(false);
      }
    }
    load();
  }, []);
  const chains = useMemo(() => {
    const uniqueChains = [...new Set(tokens.map(t => t.chain))];
    return ["all", ...uniqueChains.sort()];
  }, [tokens]);
  const availableProducts = useMemo(() => {
    const set = new Set();
    tokens.forEach(t => t.products.forEach(p => set.add(p)));
    return ["all", ...Array.from(set)];
  }, [tokens]);
  const filteredTokens = useMemo(() => {
    const query = searchQuery.trim().toLowerCase();
    return tokens.filter(t => {
      const matchesSearch = !query || t.name.toLowerCase().includes(query) || t.chain.toLowerCase().includes(query);
      const matchesChain = selectedChain === "all" || t.chain === selectedChain;
      const matchesProduct = selectedProduct === "all" || t.products.includes(selectedProduct);
      return matchesSearch && matchesChain && matchesProduct;
    });
  }, [tokens, searchQuery, selectedChain, selectedProduct]);
  if (loading) return <div className="flex items-center justify-center p-10"><div className="text-sm text-zinc-950/70 dark:text-white/70">Loading...</div></div>;
  if (error) return <div className="p-4 text-sm text-red-700 bg-red-50 dark:bg-red-900/20 rounded-xl border border-red-200 dark:border-red-800">{error}</div>;
  return <div className="space-y-6 not-prose">
      <div className="text-sm text-zinc-950/70 dark:text-white/70">
        <div className="font-semibold text-zinc-950 dark:text-white mb-1">{tokens.length} tokens · {chains.length - 1} blockchains</div>
        <p>Search or filter supported assets across all networks.</p>
      </div>

      <div className="grid gap-4 md:grid-cols-2">
        <input type="text" placeholder="Search by token or blockchain..." value={searchQuery} onChange={e => setSearchQuery(e.target.value)} className="w-full px-4 py-2.5 rounded-xl border border-zinc-950/10 dark:border-white/10 bg-white dark:bg-zinc-900 text-sm text-zinc-950 dark:text-white placeholder:text-zinc-950/50 dark:placeholder:text-white/50 focus:outline-none focus:ring-2 focus:ring-zinc-950/20 dark:focus:ring-white/20" />
        <select value={selectedChain} onChange={e => setSelectedChain(e.target.value)} className="w-full px-4 py-2.5 rounded-xl border border-zinc-950/10 dark:border-white/10 bg-white dark:bg-zinc-900 text-sm text-zinc-950 dark:text-white focus:outline-none focus:ring-2 focus:ring-zinc-950/20 dark:focus:ring-white/20">
          {chains.map(chain => <option key={chain} value={chain}>{chain === "all" ? "All blockchains" : chain}</option>)}
        </select>
      </div>

      <div className="space-y-2">
        <div className="text-xs font-medium text-zinc-950/70 dark:text-white/70">Filter by product</div>
        <div className="flex flex-wrap gap-2">
          {availableProducts.map(product => <button key={product} onClick={() => setSelectedProduct(product)} className={selectedProduct === product ? "px-4 py-2 rounded-lg text-xs font-semibold border-2 border-green-500 dark:border-zinc-500 text-zinc-600 dark:text-zinc-500 bg-zinc-100 dark:bg-zinc-800 shadow-sm transition-all duration-200 ease-in-out" : "px-4 py-2 rounded-lg text-xs font-medium border-2 border-zinc-900 dark:border-white text-zinc-900 dark:text-white bg-white dark:bg-zinc-900 hover:border-green-500 dark:hover:border-zinc-500 hover:bg-zinc-50 dark:hover:bg-zinc-800 transition-all duration-200 ease-in-out"}>
  {product === "all" ? "All products" : product}
</button>)}
        </div>
      </div>

      <div className="flex justify-between text-xs text-zinc-950/70 dark:text-white/70">
        <span>Showing {filteredTokens.length} of {tokens.length}</span>
        {(searchQuery || selectedChain !== "all" || selectedProduct !== "all") && <button onClick={() => {
    setSearchQuery("");
    setSelectedChain("all");
    setSelectedProduct("all");
  }} className="font-medium text-zinc-950 dark:text-white hover:underline">Reset</button>}
      </div>

      <div className="overflow-x-auto">
        <table className="w-full text-sm">
          <thead>
            <tr className="border-b border-zinc-950/10 dark:border-white/10">
              <th className="text-left py-3 px-4 font-semibold text-zinc-950 dark:text-white">Token</th>
              <th className="text-left py-3 px-4 font-semibold text-zinc-950 dark:text-white">Symbol</th>
              <th className="text-left py-3 px-4 font-semibold text-zinc-950 dark:text-white">Blockchain</th>
              <th className="text-left py-3 px-4 font-semibold text-zinc-950 dark:text-white">Products</th>
            </tr>
          </thead>
          <tbody>
            {filteredTokens.map((t, idx) => <tr key={idx} className="border-b border-zinc-950/5 dark:border-white/5 hover:bg-zinc-950/5 dark:hover:bg-white/5 transition-colors">
                <td className="py-3 px-4 text-zinc-950 dark:text-white">{t.name}</td>
                <td className="py-3 px-4 text-zinc-950/70 dark:text-white/70">{t.symbol}</td>
                <td className="py-3 px-4">
                  <span className="inline-block px-2 py-0.5 rounded-md text-xs border border-zinc-950/10 dark:border-white/10 text-zinc-950/80 dark:text-white/80">
                    {t.chain}
                  </span>
                </td>
                <td className="py-3 px-4">
                  <div className="flex flex-wrap gap-1">
                    {t.products.map(p => <span key={p} className="inline-block px-2 py-0.5 rounded-md text-xs border border-zinc-950/10 dark:border-white/10 text-zinc-950/80 dark:text-white/80">
                        {p}
                      </span>)}
                  </div>
                </td>
              </tr>)}
          </tbody>
        </table>
      </div>
    </div>;
};

# Supported Assets

<TokenExplorer />
