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

# Substrate Networks

> Browse all Substrate-based networks supported by SQD.

export function NetworksTable({networks, columns = {}, hideTestnetToggle = false}) {
  const {useState} = React;
  const {showChainId = false, showTraces = false, showStateDiffs = false, showType = false, showCategory = false} = columns;
  const [filter, setFilter] = useState("");
  const [copiedId, setCopiedId] = useState(null);
  const [sortColumn, setSortColumn] = useState("name");
  const [sortDirection, setSortDirection] = useState("asc");
  const [showTestnets, setShowTestnets] = useState(true);
  const filteredNetworks = networks.filter(network => {
    const networkType = network.type || (network.name.toLowerCase().includes("testnet") || network.name.toLowerCase().includes("devnet") ? "testnet" : "mainnet");
    if (!showTestnets && (networkType === "testnet" || networkType === "devnet")) {
      return false;
    }
    const filterLower = filter.toLowerCase();
    const nameMatch = network.name.toLowerCase().includes(filterLower);
    if (showChainId) {
      const chainIdMatch = network.chainId ? network.chainId.toString().includes(filterLower) : false;
      return nameMatch || chainIdMatch;
    }
    return nameMatch;
  });
  const hasStrictChainIdMatch = showChainId && filter.trim() !== "" && (/^\d+$/).test(filter.trim()) && filteredNetworks.some(network => network.chainId && network.chainId.toString() === filter.trim());
  const finalFilteredNetworks = hasStrictChainIdMatch ? filteredNetworks.filter(network => network.chainId && network.chainId.toString() === filter.trim()) : filteredNetworks;
  const handleSort = column => {
    if (sortColumn === column) {
      setSortDirection(sortDirection === "asc" ? "desc" : "asc");
    } else {
      setSortColumn(column);
      setSortDirection("asc");
    }
  };
  const sortedNetworks = [...finalFilteredNetworks].sort((a, b) => {
    let aVal, bVal;
    switch (sortColumn) {
      case "name":
        aVal = a.name.toLowerCase();
        bVal = b.name.toLowerCase();
        break;
      case "chainId":
        aVal = a.chainId ? parseInt(a.chainId) : 0;
        bVal = b.chainId ? parseInt(b.chainId) : 0;
        break;
      case "slug":
        aVal = a.slug.toLowerCase();
        bVal = b.slug.toLowerCase();
        break;
      case "portal":
        aVal = a.portal ? 1 : 0;
        bVal = b.portal ? 1 : 0;
        break;
      case "realtime":
        aVal = a.realtime ? 1 : 0;
        bVal = b.realtime ? 1 : 0;
        break;
      case "traces":
        aVal = a.traces ? 1 : 0;
        bVal = b.traces ? 1 : 0;
        break;
      case "stateDiffs":
        aVal = a.stateDiffs ? 1 : 0;
        bVal = b.stateDiffs ? 1 : 0;
        break;
      case "type":
        aVal = a.type || "";
        bVal = b.type || "";
        break;
      case "category":
        aVal = a.category || "";
        bVal = b.category || "";
        break;
      default:
        return 0;
    }
    if (aVal < bVal) return sortDirection === "asc" ? -1 : 1;
    if (aVal > bVal) return sortDirection === "asc" ? 1 : -1;
    return 0;
  });
  const copyToClipboard = async (text, id) => {
    try {
      await navigator.clipboard.writeText(text);
      setCopiedId(id);
      setTimeout(() => setCopiedId(null), 2000);
    } catch (err) {
      console.error('Failed to copy:', err);
    }
  };
  const getPortalUrl = slug => `https://portal.sqd.dev/datasets/${slug}`;
  const getV2ArchiveUrl = slug => `v2.archive.subsquid.io/network/${slug}`;
  const colSpan = 3 + (showChainId ? 1 : 0) + (showTraces ? 1 : 0) + (showStateDiffs ? 1 : 0) + (showType ? 1 : 0) + (showCategory ? 1 : 0);
  return <div className="not-prose">
  <div className="sqd-nt-frame">
    <div className="sqd-nt-toolbar px-4 py-3 flex flex-wrap items-center justify-between gap-3">
      <div className="flex flex-wrap items-center gap-2 flex-1 min-w-0 max-w-2xl">
        <input type="text" placeholder={showChainId ? "Filter by network name or chain ID..." : "Filter by network name..."} value={filter} onChange={e => setFilter(e.target.value)} className="sqd-pg-select flex-1 h-10 px-4 py-2 focus:outline-none focus:ring-2 focus:ring-primary transition-all" />
        {!hideTestnetToggle && <button onClick={() => setShowTestnets(!showTestnets)} className={`sqd-btn-secondary-docs inline-flex items-center h-10 gap-2 px-4 py-2 text-sm whitespace-nowrap ${showTestnets ? "" : "sqd-nt-toggle-off"}`} aria-label={showTestnets ? "Hide testnets" : "Show testnets"}>
            {showTestnets ? <svg className="w-4 h-4 sqd-nt-ok" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M5 13l4 4L19 7" />
              </svg> : <svg className="w-4 h-4 sqd-nt-dim" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M6 18L18 6M6 6l12 12" />
              </svg>}
            Show testnets
          </button>}
      </div>
      <a href="https://t.me/karelxfi" target="\_blank" rel="noopener noreferrer" className="sqd-btn-primary-docs inline-flex items-center h-10 gap-1.5 px-4 py-2 text-sm whitespace-nowrap">
        <svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
          <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M12 4v16m8-8H4" />
        </svg>
        Request Network
      </a>
    </div>
    <div>
      <table className="sqd-nt-table min-w-full border-collapse text-sm m-0">
        <thead>
          <tr>
            <th className="text-left py-3 pl-4 pr-3 cursor-pointer select-none" onClick={() => handleSort("name")}>
              <div className="flex items-center gap-1">
                Network
                {sortColumn === "name" && <span className="sqd-nt-dim">
                    {sortDirection === "asc" ? "↑" : "↓"}
                  </span>}
              </div>
            </th>
            {showChainId && <th className="text-left py-3 px-3 cursor-pointer select-none" style={{
    width: '100px',
    minWidth: '100px',
    maxWidth: '100px'
  }} onClick={() => handleSort("chainId")}>
                <div className="flex items-center gap-1">
                  Chain ID
                  {sortColumn === "chainId" && <span className="text-gray-500 dark:text-gray-400">
                      {sortDirection === "asc" ? "↑" : "↓"}
                    </span>}
                </div>
              </th>}
            {showType && <th className="text-left py-3 px-3 cursor-pointer select-none" style={{
    width: '90px',
    minWidth: '90px',
    maxWidth: '90px'
  }} onClick={() => handleSort("type")}>
                <div className="flex items-center gap-1">
                  Type
                  {sortColumn === "type" && <span className="text-gray-500 dark:text-gray-400">
                      {sortDirection === "asc" ? "↑" : "↓"}
                    </span>}
                </div>
              </th>}
            {showCategory && <th className="text-left py-3 px-3 cursor-pointer select-none" style={{
    width: '90px',
    minWidth: '90px',
    maxWidth: '90px'
  }} onClick={() => handleSort("category")}>
                <div className="flex items-center gap-1">
                  VM
                  {sortColumn === "category" && <span className="text-gray-500 dark:text-gray-400">
                      {sortDirection === "asc" ? "↑" : "↓"}
                    </span>}
                </div>
              </th>}
            <th className="text-center py-3 px-2 cursor-pointer select-none" style={{
    width: '75px',
    minWidth: '75px',
    maxWidth: '75px'
  }} onClick={() => handleSort("portal")}>
              <div className="flex items-center justify-center gap-1">
                <Tooltip tip="Available on Portal infrastructure">
                  Portal
                </Tooltip>
                {sortColumn === "portal" && <span className="sqd-nt-dim">
                    {sortDirection === "asc" ? "↑" : "↓"}
                  </span>}
              </div>
            </th>
            <th className="text-center py-3 px-2 cursor-pointer select-none" style={{
    width: '75px',
    minWidth: '75px',
    maxWidth: '75px'
  }} onClick={() => handleSort("realtime")}>
              <div className="flex items-center justify-center gap-1 whitespace-nowrap">
                <Tooltip tip="Supports real-time streaming">Real-Time</Tooltip>
                {sortColumn === "realtime" && <span className="sqd-nt-dim">
                    {sortDirection === "asc" ? "↑" : "↓"}
                  </span>}
              </div>
            </th>
            {showTraces && <th className="text-center py-3 px-2 cursor-pointer select-none" style={{
    width: '75px',
    minWidth: '75px',
    maxWidth: '75px'
  }} onClick={() => handleSort("traces")}>
                <div className="flex items-center justify-center gap-1">
                  Traces
                  {sortColumn === "traces" && <span className="text-gray-500 dark:text-gray-400">
                      {sortDirection === "asc" ? "↑" : "↓"}
                    </span>}
                </div>
              </th>}
            {showStateDiffs && <th className="text-center py-3 px-2 cursor-pointer select-none" style={{
    width: '75px',
    minWidth: '75px',
    maxWidth: '75px'
  }} onClick={() => handleSort("stateDiffs")}>
                <div className="flex items-center justify-center gap-1 whitespace-nowrap">
                  State Diffs
                  {sortColumn === "stateDiffs" && <span className="text-gray-500 dark:text-gray-400">
                      {sortDirection === "asc" ? "↑" : "↓"}
                    </span>}
                </div>
              </th>}
            <th className="text-left py-3 px-3 cursor-pointer select-none" style={{
    width: '210px',
    minWidth: '210px'
  }} onClick={() => handleSort("slug")}>
              <div className="flex items-center gap-1">
                <Tooltip tip="Dataset identifier for use with Portal endpoints">
                  Slug
                </Tooltip>
                {sortColumn === "slug" && <span className="sqd-nt-dim">
                    {sortDirection === "asc" ? "↑" : "↓"}
                  </span>}
              </div>
            </th>
            <th className="text-left py-3 px-3" style={{
    width: '110px',
    minWidth: '110px'
  }}>
              Details
            </th>
          </tr>
        </thead>
        <tbody>
          {sortedNetworks.length > 0 ? sortedNetworks.map((network, index) => {
    const portalId = `portal-${network.slug}`;
    const v2Id = `v2-${network.slug}`;
    return <tr key={index}>
                  <td className="network-name-cell sqd-nt-name py-3 pl-4 pr-3 text-left">
                    <span className="inline-flex items-center gap-2">
                      {network.tooltip ? <span className="inline">
                          <Tooltip tip={network.tooltip}>{network.name}</Tooltip>
                        </span> : network.name}
                      {network.retiring && <Tooltip tip={"Retires " + network.retiring.at}>
                          <a href={network.retiring.href} className="sqd-nt-badge sqd-nt-badge--retiring">
                            Retiring {network.retiring.label}
                          </a>
                        </Tooltip>}
                    </span>
                  </td>
                  {showChainId && <td className="sqd-nt-cell py-3 px-3 text-left" style={{
      width: '90px',
      minWidth: '90px',
      maxWidth: '90px'
    }}>
                      {network.chainId || "-"}
                    </td>}
                  {showType && <td className="sqd-nt-cell py-3 px-3 text-left" style={{
      width: '90px',
      minWidth: '90px',
      maxWidth: '90px'
    }}>
                      <span className={`sqd-nt-badge ${network.type && network.type !== "mainnet" ? "sqd-nt-badge--testnet" : ""}`}>
                        {network.type || "mainnet"}
                      </span>
                    </td>}
                  {showCategory && <td className="sqd-nt-cell py-3 px-3 text-left" style={{
      width: '90px',
      minWidth: '90px',
      maxWidth: '90px'
    }}>
                      <span className="sqd-nt-badge sqd-nt-badge--vm">
                        {network.category || "-"}
                      </span>
                    </td>}
                  <td className="py-3 px-2 text-center" style={{
      width: '75px',
      minWidth: '75px',
      maxWidth: '75px'
    }}>
                    {network.portal ? <span className="sqd-nt-dot" /> : <span className="sqd-nt-no select-none text-base">–</span>}
                  </td>
                  <td className="py-3 px-2 text-center" style={{
      width: '75px',
      minWidth: '75px',
      maxWidth: '75px'
    }}>
                    {network.realtime ? <span className="sqd-nt-dot" /> : <span className="sqd-nt-no select-none text-base">–</span>}
                  </td>
                  {showTraces && <td className="py-3 px-2 text-center" style={{
      width: '75px',
      minWidth: '75px',
      maxWidth: '75px'
    }}>
                      {network.traces == null ? <Tooltip tip="Not applicable for this network type">
                          <span className="sqd-nt-no select-none text-base">–</span>
                        </Tooltip> : network.traces ? <span className="sqd-nt-dot" /> : <span className="sqd-nt-no select-none text-base">–</span>}
                    </td>}
                  {showStateDiffs && <td className="py-3 px-2 text-center" style={{
      width: '75px',
      minWidth: '75px',
      maxWidth: '75px'
    }}>
                      {network.stateDiffs == null ? <Tooltip tip="Not applicable for this network type">
                          <span className="sqd-nt-no select-none text-base">–</span>
                        </Tooltip> : network.stateDiffs ? <span className="sqd-nt-dot" /> : <span className="sqd-nt-no select-none text-base">–</span>}
                    </td>}
                  <td className="py-3 px-3 text-left">
                    <div className="flex items-center gap-2">
                      <code className="sqd-nt-chip">
                        {network.slug}
                      </code>
                      {network.portal && <Tooltip tip={copiedId === portalId ? "Copied!" : "Copy Portal endpoint URL"}>
                          <button onClick={e => {
      e.stopPropagation();
      copyToClipboard(getPortalUrl(network.slug), portalId);
    }} className="sqd-nt-copy flex items-center justify-center" aria-label="Copy Portal URL">
                            <span className={copiedId === portalId ? "sqd-nt-ok" : ""}>
                              {copiedId === portalId ? <Icon icon="circle-check" iconType="solid" /> : <Icon icon="copy" iconType="regular" />}
                            </span>
                          </button>
                        </Tooltip>}
                    </div>
                  </td>
                  <td className="py-3 px-3 text-left">
                    <a href={network.details} className="sqd-nt-link inline-flex items-center gap-1">
                      View
                      <span className="text-xs">→</span>
                    </a>
                  </td>
                </tr>;
  }) : <tr>
              <td colSpan={colSpan} className="sqd-nt-dim py-6 px-4 text-center">
                <div className="flex flex-col items-center gap-1.5">
                  <span className="text-lg">🔍</span>
                  <span>No networks found matching "{filter}"</span>
                </div>
              </td>
            </tr>}
        </tbody>
      </table>
    </div>
  </div>
</div>;
}

export const substrateNetworks = [{
  "name": "Acala",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "acala",
  "details": "/en/data/substrate/acala",
  "legacyUrl": "v2.archive.subsquid.io/network/acala",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Agung (Substrate)",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "agung",
  "details": "/en/data/substrate/agung",
  "legacyUrl": "v2.archive.subsquid.io/network/agung",
  "retiring": null
}, {
  "name": "Aleph Zero",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "aleph-zero",
  "details": "/en/data/substrate/aleph-zero",
  "legacyUrl": "v2.archive.subsquid.io/network/aleph-zero",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Amplitude",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "amplitude",
  "details": "/en/data/substrate/amplitude",
  "legacyUrl": "v2.archive.subsquid.io/network/amplitude",
  "retiring": null
}, {
  "name": "Astar (Substrate)",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "astar-substrate",
  "details": "/en/data/substrate/astar-substrate",
  "legacyUrl": "v2.archive.subsquid.io/network/astar-substrate",
  "retiring": null
}, {
  "name": "Avail",
  "type": "mainnet",
  "tooltip": "The Avail Mainnet dataset starts at block 1.",
  "portal": true,
  "realtime": false,
  "slug": "avail",
  "details": "/en/data/substrate/avail",
  "legacyUrl": "v2.archive.subsquid.io/network/avail",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Basilisk",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "basilisk",
  "details": "/en/data/substrate/basilisk",
  "legacyUrl": "v2.archive.subsquid.io/network/basilisk",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Bifrost Kusama",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "bifrost-kusama",
  "details": "/en/data/substrate/bifrost-kusama",
  "legacyUrl": "v2.archive.subsquid.io/network/bifrost-kusama",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Bifrost Polkadot",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "bifrost-polkadot",
  "details": "/en/data/substrate/bifrost-polkadot",
  "legacyUrl": "v2.archive.subsquid.io/network/bifrost-polkadot",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Bittensor (Substrate)",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "bittensor",
  "details": "/en/data/substrate/bittensor",
  "legacyUrl": "v2.archive.subsquid.io/network/bittensor",
  "retiring": null
}, {
  "name": "Bittensor Testnet (Substrate)",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "bittensor-testnet",
  "details": "/en/data/substrate/bittensor-testnet",
  "legacyUrl": "v2.archive.subsquid.io/network/bittensor-testnet",
  "retiring": null
}, {
  "name": "Centrifuge",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "centrifuge",
  "details": "/en/data/substrate/centrifuge",
  "legacyUrl": "v2.archive.subsquid.io/network/centrifuge",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Cere",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "cere",
  "details": "/en/data/substrate/cere",
  "legacyUrl": "v2.archive.subsquid.io/network/cere",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Chainflip",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "chainflip",
  "details": "/en/data/substrate/chainflip",
  "legacyUrl": "v2.archive.subsquid.io/network/chainflip",
  "retiring": null
}, {
  "name": "Clover",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "clover",
  "details": "/en/data/substrate/clover",
  "legacyUrl": "v2.archive.subsquid.io/network/clover",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Crust",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "crust",
  "details": "/en/data/substrate/crust",
  "legacyUrl": "v2.archive.subsquid.io/network/crust",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Darwinia",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "darwinia",
  "details": "/en/data/substrate/darwinia",
  "legacyUrl": "v2.archive.subsquid.io/network/darwinia",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Darwinia Crab",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "darwinia-crab",
  "details": "/en/data/substrate/darwinia-crab",
  "legacyUrl": "v2.archive.subsquid.io/network/darwinia-crab",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Eden",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "eden",
  "details": "/en/data/substrate/eden",
  "legacyUrl": "v2.archive.subsquid.io/network/eden",
  "retiring": null
}, {
  "name": "Enjin Canary Matrixchain",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "enjin-canary-matrix",
  "details": "/en/data/substrate/enjin-canary-matrix",
  "legacyUrl": "v2.archive.subsquid.io/network/enjin-canary-matrix",
  "retiring": null
}, {
  "name": "Enjin Matrixchain",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "enjin-matrix",
  "details": "/en/data/substrate/enjin-matrix",
  "legacyUrl": "v2.archive.subsquid.io/network/enjin-matrix",
  "retiring": null
}, {
  "name": "Enjin Relaychain",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "enjin-relay",
  "details": "/en/data/substrate/enjin-relay",
  "legacyUrl": "v2.archive.subsquid.io/network/enjin-relay",
  "retiring": null
}, {
  "name": "Equilibrium",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "equilibrium",
  "details": "/en/data/substrate/equilibrium",
  "legacyUrl": "v2.archive.subsquid.io/network/equilibrium",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Frequency",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "frequency",
  "details": "/en/data/substrate/frequency",
  "legacyUrl": "v2.archive.subsquid.io/network/frequency",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Heima",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "litentry",
  "details": "/en/data/substrate/litentry",
  "legacyUrl": "v2.archive.subsquid.io/network/litentry",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Hydration",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "hydradx",
  "details": "/en/data/substrate/hydradx",
  "legacyUrl": "v2.archive.subsquid.io/network/hydradx",
  "retiring": null
}, {
  "name": "Integritee",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "integritee",
  "details": "/en/data/substrate/integritee",
  "legacyUrl": "v2.archive.subsquid.io/network/integritee",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Interlay",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "interlay",
  "details": "/en/data/substrate/interlay",
  "legacyUrl": "v2.archive.subsquid.io/network/interlay",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "InvArch",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "invarch-parachain",
  "details": "/en/data/substrate/invarch-parachain",
  "legacyUrl": "v2.archive.subsquid.io/network/invarch-parachain",
  "retiring": null
}, {
  "name": "InvArch Tinkernet",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "invarch-tinkernet",
  "details": "/en/data/substrate/invarch-tinkernet",
  "legacyUrl": "v2.archive.subsquid.io/network/invarch-tinkernet",
  "retiring": null
}, {
  "name": "Joystream",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "joystream",
  "details": "/en/data/substrate/joystream",
  "legacyUrl": "v2.archive.subsquid.io/network/joystream",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Karura",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "karura",
  "details": "/en/data/substrate/karura",
  "legacyUrl": "v2.archive.subsquid.io/network/karura",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Khala",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "khala",
  "details": "/en/data/substrate/khala",
  "legacyUrl": "v2.archive.subsquid.io/network/khala",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "KILT",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "kilt",
  "details": "/en/data/substrate/kilt",
  "legacyUrl": "v2.archive.subsquid.io/network/kilt",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Kintsugi",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "kintsugi",
  "details": "/en/data/substrate/kintsugi",
  "legacyUrl": "v2.archive.subsquid.io/network/kintsugi",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Kusama",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "kusama",
  "details": "/en/data/substrate/kusama",
  "legacyUrl": "v2.archive.subsquid.io/network/kusama",
  "retiring": null
}, {
  "name": "Kusama Asset Hub",
  "type": "mainnet",
  "tooltip": "Asset Hub Kusama was formerly known as Statemine.",
  "portal": true,
  "realtime": false,
  "slug": "asset-hub-kusama",
  "details": "/en/data/substrate/asset-hub-kusama",
  "legacyUrl": "v2.archive.subsquid.io/network/asset-hub-kusama",
  "retiring": null
}, {
  "name": "Kusama Bridge Hub",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "bridge-hub-kusama",
  "details": "/en/data/substrate/bridge-hub-kusama",
  "legacyUrl": "v2.archive.subsquid.io/network/bridge-hub-kusama",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Moonbase Alpha (Substrate)",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "moonbase-substrate",
  "details": "/en/data/substrate/moonbase-substrate",
  "legacyUrl": "v2.archive.subsquid.io/network/moonbase-substrate",
  "retiring": null
}, {
  "name": "Moonbeam (Substrate)",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "moonbeam-substrate",
  "details": "/en/data/substrate/moonbeam-substrate",
  "legacyUrl": "v2.archive.subsquid.io/network/moonbeam-substrate",
  "retiring": null
}, {
  "name": "Moonriver (Substrate)",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "moonriver-substrate",
  "details": "/en/data/substrate/moonriver-substrate",
  "legacyUrl": "v2.archive.subsquid.io/network/moonriver-substrate",
  "retiring": null
}, {
  "name": "Paseo",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "paseo",
  "details": "/en/data/substrate/paseo",
  "legacyUrl": "v2.archive.subsquid.io/network/paseo",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Paseo Asset Hub",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "asset-hub-paseo",
  "details": "/en/data/substrate/asset-hub-paseo",
  "legacyUrl": "v2.archive.subsquid.io/network/asset-hub-paseo",
  "retiring": null
}, {
  "name": "Peaq (Substrate)",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "peaq-mainnet-substrate",
  "details": "/en/data/substrate/peaq-mainnet-substrate",
  "legacyUrl": "v2.archive.subsquid.io/network/peaq-mainnet-substrate",
  "retiring": null
}, {
  "name": "Pendulum",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "pendulum",
  "details": "/en/data/substrate/pendulum",
  "legacyUrl": "v2.archive.subsquid.io/network/pendulum",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Phala",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "phala",
  "details": "/en/data/substrate/phala",
  "legacyUrl": "v2.archive.subsquid.io/network/phala",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Picasso",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "picasso",
  "details": "/en/data/substrate/picasso",
  "legacyUrl": "v2.archive.subsquid.io/network/picasso",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Polkadex",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "polkadex",
  "details": "/en/data/substrate/polkadex",
  "legacyUrl": "v2.archive.subsquid.io/network/polkadex",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Polkadot",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "polkadot",
  "details": "/en/data/substrate/polkadot",
  "legacyUrl": "v2.archive.subsquid.io/network/polkadot",
  "retiring": null
}, {
  "name": "Polkadot Asset Hub",
  "type": "mainnet",
  "tooltip": "Asset Hub Polkadot was formerly known as Statemint.",
  "portal": true,
  "realtime": false,
  "slug": "asset-hub-polkadot",
  "details": "/en/data/substrate/asset-hub-polkadot",
  "legacyUrl": "v2.archive.subsquid.io/network/asset-hub-polkadot",
  "retiring": null
}, {
  "name": "Polkadot Bridge Hub",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "bridge-hub-polkadot",
  "details": "/en/data/substrate/bridge-hub-polkadot",
  "legacyUrl": "v2.archive.subsquid.io/network/bridge-hub-polkadot",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Polkadot Collectives",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "collectives-polkadot",
  "details": "/en/data/substrate/collectives-polkadot",
  "legacyUrl": "v2.archive.subsquid.io/network/collectives-polkadot",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Polkadot People",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "people-chain",
  "details": "/en/data/substrate/people-chain",
  "legacyUrl": "v2.archive.subsquid.io/network/people-chain",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Polymesh",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "polymesh",
  "details": "/en/data/substrate/polymesh",
  "legacyUrl": "v2.archive.subsquid.io/network/polymesh",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Reef",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "reef",
  "details": "/en/data/substrate/reef",
  "legacyUrl": "v2.archive.subsquid.io/network/reef",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Reef Testnet",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "reef-testnet",
  "details": "/en/data/substrate/reef-testnet",
  "legacyUrl": "v2.archive.subsquid.io/network/reef-testnet",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Robonomics",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "robonomics",
  "details": "/en/data/substrate/robonomics",
  "legacyUrl": "v2.archive.subsquid.io/network/robonomics",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Shibuya (Substrate)",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "shibuya-substrate",
  "details": "/en/data/substrate/shibuya-substrate",
  "legacyUrl": "v2.archive.subsquid.io/network/shibuya-substrate",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Shiden (Substrate)",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "shiden-substrate",
  "details": "/en/data/substrate/shiden-substrate",
  "legacyUrl": "v2.archive.subsquid.io/network/shiden-substrate",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "SORA",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "sora-mainnet",
  "details": "/en/data/substrate/sora-mainnet",
  "legacyUrl": "v2.archive.subsquid.io/network/sora-mainnet",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Subsocial",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "subsocial-parachain",
  "details": "/en/data/substrate/subsocial-parachain",
  "legacyUrl": "v2.archive.subsquid.io/network/subsocial-parachain",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Ternoa",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "ternoa",
  "details": "/en/data/substrate/ternoa",
  "legacyUrl": "v2.archive.subsquid.io/network/ternoa",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Turing",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "turing-mainnet",
  "details": "/en/data/substrate/turing-mainnet",
  "legacyUrl": "v2.archive.subsquid.io/network/turing-mainnet",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Turing Avail",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "turing-avail",
  "details": "/en/data/substrate/turing-avail",
  "legacyUrl": "v2.archive.subsquid.io/network/turing-avail",
  "retiring": {
    "label": "Aug 20",
    "at": "August 20, 2026 at 12:00 UTC",
    "href": "/announcements/dataset-retirements-august-2026"
  }
}, {
  "name": "Vara",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "vara",
  "details": "/en/data/substrate/vara",
  "legacyUrl": "v2.archive.subsquid.io/network/vara",
  "retiring": null
}, {
  "name": "Vara Testnet",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "vara-testnet",
  "details": "/en/data/substrate/vara-testnet",
  "legacyUrl": "v2.archive.subsquid.io/network/vara-testnet",
  "retiring": null
}, {
  "name": "Westend Asset Hub",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "asset-hub-westend",
  "details": "/en/data/substrate/asset-hub-westend",
  "legacyUrl": "v2.archive.subsquid.io/network/asset-hub-westend",
  "retiring": null
}, {
  "name": "Zeitgeist",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "zeitgeist",
  "details": "/en/data/substrate/zeitgeist",
  "legacyUrl": "v2.archive.subsquid.io/network/zeitgeist",
  "retiring": null
}, {
  "name": "Zeitgeist Testnet",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "zeitgeist-testnet",
  "details": "/en/data/substrate/zeitgeist-testnet",
  "legacyUrl": "v2.archive.subsquid.io/network/zeitgeist-testnet",
  "retiring": null
}, {
  "name": "zkVerify Mainnet",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "zkverify-mainnet",
  "details": "/en/data/substrate/zkverify-mainnet",
  "legacyUrl": null,
  "retiring": null
}, {
  "name": "zkVerify Testnet",
  "type": "mainnet",
  "tooltip": null,
  "portal": true,
  "realtime": false,
  "slug": "zkverify-testnet",
  "details": "/en/data/substrate/zkverify-testnet",
  "legacyUrl": "v2.archive.subsquid.io/network/zkverify-testnet",
  "retiring": null
}];

<Warning>
  **Portal Migration**: We're migrating from v2 archives to Portal. V2 archives will be sunset soon. [Get Started with Portal →](/en/portal/migration)
</Warning>

<Tip>
  Want the full list of every dataset we support? See [All Networks](/en/data/all-networks).
</Tip>

{(() => {
const { useState } = React;
return (
<NetworksTable
  networks={substrateNetworks}
  columns={{ showType: true }}
/>
); })()}


## Related topics

- [Astar (Substrate)](/en/data/substrate/astar-substrate.md)
- [Shibuya (Substrate)](/en/data/substrate/shibuya-substrate.md)
- [Shiden (Substrate)](/en/data/substrate/shiden-substrate.md)
- [Moonbeam (Substrate)](/en/data/substrate/moonbeam-substrate.md)
- [Moonriver (Substrate)](/en/data/substrate/moonriver-substrate.md)
