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

# Stablecoins and networks

> Supported assets and networks, API codes and address formats.

export const ICON = 'https://res.cloudinary.com/dy1qfcd5r/image/upload/';

export const ASSETS = [{
  code: 'usdt',
  name: 'USDT',
  full: 'Tether USD',
  icon: ICON + 'v1779933943/USDT_cxrbwm.png'
}, {
  code: 'usdc',
  name: 'USDC',
  full: 'USD Coin',
  icon: ICON + 'v1779933936/USD_Coin_USDC_nqisaw.png'
}];

export const GROUPS = [{
  name: 'Production',
  networks: [{
    code: 'ethereum',
    name: 'Ethereum',
    address: '0x…',
    icon: ICON + 'v1779934178/Group_10109_lne2qr.png',
    assets: ['usdt', 'usdc']
  }, {
    code: 'polygon',
    name: 'Polygon',
    address: '0x…',
    icon: ICON + 'v1779934083/Coin_Logo_2_dbjest.png',
    assets: ['usdt', 'usdc']
  }, {
    code: 'arbitrum',
    name: 'Arbitrum',
    address: '0x…',
    icon: ICON + 'v1779934178/Group_10141_gayvkw.png',
    assets: ['usdt', 'usdc']
  }, {
    code: 'bsc',
    name: 'BSC',
    address: '0x…',
    icon: ICON + 'v1779934082/bnb-bnb-logo_1_efrexp.png',
    assets: ['usdt', 'usdc']
  }, {
    code: 'tron',
    name: 'Tron',
    address: 'T…',
    icon: ICON + 'v1779934083/Coin_Logo_v6r9rl.png',
    assets: ['usdt']
  }, {
    code: 'solana',
    name: 'Solana',
    address: 'Base58',
    icon: ICON + 'v1779934083/Coin_Logo_1_xva94p.png',
    assets: ['usdt', 'usdc']
  }]
}, {
  name: 'Sandbox only',
  networks: [{
    code: 'sepolia',
    name: 'Sepolia',
    address: '0x…',
    icon: ICON + 'v1779934178/Group_10109_lne2qr.png',
    assets: ['usdt', 'usdc'],
    testnet: true
  }]
}];

export const Coin = ({src, size = 20}) => <img src={src} alt="" width={size} height={size} loading="lazy" noZoom className="zp-coin" style={{
  width: size,
  height: size
}} />;

export const Mark = ({on}) => on ? <span className="zp-geo-yes"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3.2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7.5" /></svg><span className="zp-geo-sr">Supported</span></span> : <span className="zp-geo-no"><span className="zp-geo-sr">Not supported</span></span>;

export const NetworkMatrix = () => <div className="zp-geo-matrix-wrap">
    <table className="zp-geo-matrix zp-sc-matrix">
      <thead>
        <tr>
          <th scope="col">Network</th>
          {ASSETS.map(asset => <th key={asset.code} scope="col" className="zp-sc-asset-col"><span><Coin src={asset.icon} size={16} />{asset.name}</span></th>)}
        </tr>
      </thead>
      {GROUPS.map(group => <tbody key={group.name}>
          <tr className="zp-geo-region-row"><th scope="rowgroup" colSpan={ASSETS.length + 1}>{group.name}</th></tr>
          {group.networks.map(network => <tr key={network.code}>
              <th scope="row">
                <span className="zp-geo-market">
                  <Coin src={network.icon} size={28} />
                  <span>
                    <span className="zp-geo-market-name">
                      {network.name}
                      {network.testnet && <span className="zp-sc-testnet">Testnet</span>}
                    </span>
                    <span className="zp-geo-market-currency"><code>{network.code}</code>{network.address} addresses</span>
                  </span>
                </span>
              </th>
              {ASSETS.map(asset => <td key={asset.code}><Mark on={network.assets.includes(asset.code)} /></td>)}
            </tr>)}
        </tbody>)}
    </table>
  </div>;

export const RULES = [{
  title: 'Build on Sepolia',
  text: 'Develop against Sandbox and Sepolia. Testnet funds have no real value, and Sepolia addresses never work in production.',
  d: 'M9 3h6M10 3v6l-5 9a2 2 0 0 0 1.8 3h10.4a2 2 0 0 0 1.8-3l-5-9V3M7 15h10'
}, {
  title: 'One address, one network',
  text: 'Ethereum, Polygon, Arbitrum and BSC share the 0x format. A valid-looking address on the wrong chain still loses funds.',
  d: 'M12 3l8 4.5v9L12 21l-8-4.5v-9L12 3zM12 12l8-4.5M12 12v9M12 12L4 7.5'
}, {
  title: 'Trust the quotation',
  text: 'Read the asset, network and deposit address from the quotation response for every transfer. Never reuse them from an older order.',
  d: 'M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8l-5-5zM14 3v5h5M9 13l2 2 4-4'
}];

<p className="zp-geo-lead">Zapyd moves USDT and USDC on six production networks, with Sepolia for testing in Sandbox. Every transfer names an asset and a network, and the pair must be one of those listed here.</p>

<Warning>
  Funds sent on the wrong network, or as an unsupported asset and network pair, are lost permanently. Check that the network in the sending wallet matches the quotation before you send any on-chain transfer.
</Warning>

<NetworkMatrix />

Send the `network` code shown under each network, and `usdt` or `usdc` as the asset. Codes are case-insensitive.

## Before you move funds

<div className="zp-sc-rules">
  {RULES.map((rule) => (
      <div key={rule.title} className="zp-sc-rule">
        <span className="zp-sc-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true"><path d={rule.d} /></svg></span>
        <b>{rule.title}</b>
        <p>{rule.text}</p>
      </div>
    ))}
</div>


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