Migration guide

Migrate from Dune Sim to GoldRush

Sim shut down on 1 August 2026. Here is where each endpoint goes.

Dune sunset sim.dune.com on 1 August 2026: new signups were disabled on 18 May 2026 and prepaid time past 1 August was refunded pro rata. If you still have Sim calls in a codebase, they are already failing. Sim was a flat REST API keyed by X-Sim-Api-Key with numeric chain IDs. GoldRush is the closest structural match — flat REST, decoded, multichain — and this page maps every Sim endpoint to it.

9 direct1 need work2 no equivalent4 GoldRush only

Reviewed 2026-09-11. Endpoint paths read from www.alchemy.com, dune.com, goldrush.dev. Verify against Dune Sim docs before relying on a row.

What changes before any endpoint works

These are the cross-cutting differences. Miss one and every call fails the same way, so fix them first.

 Dune SimGoldRush
Base URLhttps://api.sim.dune.com/v1 (offline since 2026-08-01)https://api.covalenthq.com
AuthX-Sim-Api-Key: <key>Authorization: Bearer <GOLDRUSH_API_KEY>
Chain addressingNumeric EVM chain IDs (1, 8453, 42161) as a query param; separate /evm/ and /svm/ path families.Named chain slug in the path (eth-mainnet, base-mainnet, arbitrum-mainnet). One family of paths for every chain.
Response envelopeFlat provider-specific JSON per endpoint.{ data: { items: [...] }, error, error_message, error_code } on every endpoint.
Pagination?limit=100&offset=<next_offset>Page number in the path: .../transactions_v3/page/{page}/. Page 0 is the OLDEST page.

Endpoint mapping

Every Dune Sim endpoint we could source, with its GoldRush equivalent. Rows marked No equivalent are gaps we are not going to paper over — read those first.

Use caseDune SimGoldRushParity
EVM token balances
Both return live USD value inline. Use /v1/allchains/address/{walletAddress}/balances/ for Sim's multichain-by-default behaviour.
GET /evm/balances/{address}GET /v1/{chainName}/address/{walletAddress}/balances_v2/Direct equivalent
Multichain balancesGET /evm/balances/{address} (multi-chain by default)GET /v1/allchains/address/{walletAddress}/balances/Direct equivalent
Stablecoin balances
No dedicated stablecoin endpoint. Filter balances_v2 by contract address client-side, exactly as Alchemy's own Sim guide tells you to do.
GET /evm/stablecoins/{address}GET /v1/{chainName}/address/{walletAddress}/balances_v2/Needs work
Token metadata + price
One call. Alchemy needs two (alchemy_getTokenMetadata plus a prices call) for the same answer.
GET /evm/token-info/{chain}/{token}GET /v1/pricing/historical_by_addresses_v2/{chainName}/{quoteCurrency}/{contractAddress}/Direct equivalent
Wallet activity / transfers
transfers_v2 for token transfers; transactions_v3 when you want full decoded log_events per transaction.
GET /evm/activity/{address}GET /v1/{chainName}/address/{walletAddress}/transfers_v2/Direct equivalent
Transaction history
Decoded log_events are included. Alchemy's equivalent needs getAssetTransfers plus getTransactionReceipts.
GET /evm/transactions/{address}GET /v1/{chainName}/address/{walletAddress}/transactions_v3/page/{page}/Direct equivalent
Multichain transactionsGET /evm/transactions/{address} (multi-chain)GET /v1/allchains/transactions/Direct equivalent
NFTs / collectiblesGET /evm/collectibles/{address}GET /v1/{chainName}/address/{walletAddress}/balances_nft/Direct equivalent
DeFi positions
No GoldRush equivalent — and none from Alchemy either, whose guide marks this N/A. If you need it, Zerion or DeBank cover it.
GET /evm/defi-positions/{address}No equivalent
Supported DeFi protocolsGET /evm/defi/supported-protocolsNo equivalent
Solana balances
Solana is a chain slug like any other — no separate /svm/ path family to maintain.
GET /svm/balances/{address}GET /v1/{chainName}/address/{walletAddress}/balances_v2/Direct equivalent
Solana transactionsGET /svm/transactions/{address}GET /v1/{chainName}/address/{walletAddress}/transactions_v3/page/{page}/Direct equivalent
Chains a wallet has usedNot availableGET /v1/address/{walletAddress}/activity/GoldRush advantage
Bitcoin balancesNot available (EVM + SVM only)GET /v1/btc-mainnet/address/{walletAddress}/balances_v2/GoldRush advantage
Token approvalsNot availableGET /v1/{chainName}/approvals/{walletAddress}/GoldRush advantage
Contract log eventsNot availableGET /v1/{chainName}/events/address/{contractAddress}/GoldRush advantage

Before and after

Copy-pasteable. Left is what you have on Dune Sim; right is the GoldRush replacement.

Token balances

Dune Sim
// BEFORE -- Sim: X-Sim-Api-Key, numeric chain IDs.
// (api.sim.dune.com stopped serving on 2026-08-01.)
const res = await fetch(
  "https://api.sim.dune.com/v1/evm/balances/" + address + "?chain_ids=1,8453",
  { headers: { "X-Sim-Api-Key": process.env.SIM_API_KEY } }
);
const { balances } = await res.json();
GoldRush
// AFTER -- GoldRush: Bearer auth, named chain slugs.
const res = await fetch(
  "https://api.covalenthq.com/v1/allchains/address/" + address +
    "/balances/?chains=eth-mainnet,base-mainnet",
  { headers: { Authorization: "Bearer " + process.env.GOLDRUSH_API_KEY } }
);
const { data, error, error_message } = await res.json();
if (error) throw new Error(error_message);
const balances = data.items;

Translating Sim chain IDs

Dune Sim
// BEFORE -- Sim took numeric EVM chain IDs.
const SIM_CHAINS = [1, 8453, 42161, 137];
GoldRush
// AFTER -- GoldRush takes named slugs. Rather than hardcoding a map,
// build it once from the live chain list so it never drifts.
const res = await fetch("https://api.covalenthq.com/v1/chains/", {
  headers: { Authorization: "Bearer " + process.env.GOLDRUSH_API_KEY },
});
const { data } = await res.json();
const byChainId = new Map(data.items.map((c) => [Number(c.chain_id), c.name]));

const SIM_CHAINS = [1, 8453, 42161, 137];
const chains = SIM_CHAINS.map((id) => byChainId.get(id)).filter(Boolean);
// -> ["eth-mainnet", "base-mainnet", "arbitrum-mainnet", "matic-mainnet"]

Offset pagination to page paths

Dune Sim
// BEFORE -- Sim used limit/offset.
let offset = 0;
const all = [];
for (;;) {
  const res = await fetch(
    "https://api.sim.dune.com/v1/evm/transactions/" + address +
      "?limit=100&offset=" + offset,
    { headers: { "X-Sim-Api-Key": process.env.SIM_API_KEY } }
  );
  const body = await res.json();
  all.push(...body.transactions);
  if (body.transactions.length < 100) break;
  offset += 100;
}
GoldRush
// AFTER -- GoldRush pages by number in the path.
// Page 0 is the OLDEST page, so this walks forward in time.
let page = 0;
const all = [];
for (;;) {
  const res = await fetch(
    "https://api.covalenthq.com/v1/eth-mainnet/address/" + address +
      "/transactions_v3/page/" + page + "/",
    { headers: { Authorization: "Bearer " + process.env.GOLDRUSH_API_KEY } }
  );
  const { data, error, error_message } = await res.json();
  if (error) throw new Error(error_message);
  all.push(...data.items);
  if (!data.links?.next) break;
  page += 1;
}

Migration steps

  1. Confirm the blast radius

    Grep your codebase for api.sim.dune.com and X-Sim-Api-Key. Every hit is a call that has been failing since 1 August 2026.

  2. Swap auth

    Replace the X-Sim-Api-Key header with Authorization: Bearer <GOLDRUSH_API_KEY>.

  3. Build a chain ID map from the live list

    Sim used numeric chain IDs; GoldRush uses named slugs. Fetch GET /v1/chains/ once at startup and map chain_id to name rather than hardcoding, so new chains do not need a deploy.

  4. Collapse /evm/ and /svm/ call sites

    Both families become the same GoldRush paths with a different chain slug. Delete the branch.

  5. Rewrite the response parser

    Move to the { data: { items: [...] }, error, error_message } envelope and check the error field, not just the HTTP status.

  6. Convert offset pagination to page paths

    Replace limit/offset loops with .../page/{page}/ and follow data.links.next. Page 0 is the oldest page.

  7. Decide what to do about DeFi positions

    Sim's /evm/defi-positions/ has no GoldRush equivalent. Alchemy cannot replace it either. If it is load-bearing, pair GoldRush with a positions-specific provider.

What you lose by moving

If any of these is load-bearing for your product, do not migrate that surface. Running both providers is a legitimate answer.

No first-class DeFi protocol positions

There is no GoldRush endpoint that returns staking, lending, or LP positions decoded per protocol. balances_v2 returns LP and receipt tokens as token balances, so the value is visible, but the protocol-level breakdown is not. This is a real gap, not a naming difference.

No single-call wallet PnL

GoldRush has no one-shot realized/unrealized PnL endpoint. You can compute it from transactions_v3 plus historical pricing, but that is your code to write, not a field to read. If PnL is the product, budget for it.

No transaction webhooks

GoldRush is request/response. There is no subscription endpoint that pushes transactions to a callback URL, so any real-time path becomes polling on your side.

What you gain

100+ chains, including Bitcoin

Live chain list at /v1/chains/ and per-chain sync state at /v1/chains/status/. Bitcoin is first-class with its own balances, historical balances, and HD-wallet endpoints — most wallet APIs are EVM-only or EVM+Solana.

One path family, not /evm/ and /svm/

Sim split EVM and Solana into separate endpoint families with different shapes. In GoldRush the chain is a path segment and the response envelope is identical everywhere, so the branch in your client code goes away.

x402: no signup, no API key

An autonomous agent can pay per request from an onchain wallet without registering an account or holding a key. If you are building agents rather than a dashboard, this removes the credential provisioning step entirely.

Log events, holders, and OHLCV

Raw and decoded log events by contract or topic, token holder lists at a block height, and pool-level pricing. Wallet-portfolio APIs generally stop at the wallet boundary and cannot answer contract-level questions.

Migration FAQ

Yes. Dune disabled new signups on 18 May 2026 and shut sim.dune.com down on 1 August 2026, refunding prepaid time pro rata. Calls to api.sim.dune.com no longer serve.

Start the port

Free API key with 25,000 credits and no card, or skip signup entirely and pay per request with x402.

Still deciding?

This page assumes you have decided to move. If you are still evaluating, the comparison covers pricing, coverage, and feature parity side by side.

GoldRush vs Dune

Other migration guides

Get Started

Get started with GoldRush API in minutes. Sign up for a free API key and start building.

Support

Explore multiple support options! From FAQs for self-help to real-time interactions on Discord.

Contact Sales

Interested in our professional or enterprise plans? Contact our sales team to learn more.