DEV Community

OnFinality
OnFinality

Posted on • Originally published at onfinality.io

Abstract Chain RPC Endpoint: Mainnet & Testnet Settings

Abstract chain is a zero-knowledge rollup on the ZK Stack. The mainnet HTTP RPC endpoint is https://api.mainnet.abs.xyz, chain ID 2741 (0xab5). The WebSocket endpoint is wss://api.mainnet.abs.xyz/ws. The testnet uses chain ID 11124 and https://api.testnet.abs.xyz. If you are connecting a wallet, indexer, or trading tool, here are the values you need and the checks that will save you from late-night debugging.

Abstract chain RPC endpoint decision checklist

Before you commit to an endpoint, run through this list:

  • [ ] Confirm the chain ID. Mainnet: 2741 (0xab5). Testnet: 11124. Wrong chain IDs are the most common wallet connection error.
  • [ ] Decide between HTTP and WebSocket. Use HTTP for one-shot calls and transaction submission. Use WebSocket for eth_subscribe, newHeads, logs, and pending transaction streams.
  • [ ] Check whether you need archive state. If you read old balances, call contracts at historical blocks, or run eth_getLogs over long ranges, you need an archive endpoint.
  • [ ] Probe throughput limits. Send a burst of eth_blockNumber and eth_getBalance calls and watch for 429 responses.
  • [ ] Test WebSocket stability. Subscribe to newHeads, leave the connection idle, and record disconnects.
  • [ ] Plan a fallback. Production traffic should retry against a second healthy endpoint.
  • [ ] Compare cost and operational burden. The public endpoint is fine for prototypes; managed RPC and dedicated nodes change the tradeoffs.

What is Abstract chain?

Abstract is an EVM-compatible zero-knowledge rollup built on zkSync's ZK Stack. It is designed as a consumer-focused chain, with native account abstraction so dApps can support email, social login, and passkey wallets instead of seed phrases.

For a developer, the practical consequence is that Ethereum JSON-RPC methods work unchanged. You can call eth_call, eth_sendRawTransaction, eth_getBalance, and eth_getLogs. Because it is built on the ZK Stack, you will also find zkSync-compatible methods for L2-specific features. Existing EVM tooling, wallets, and indexers can usually connect with a small configuration change.

If you plan to build on Abstract, keep the Abstract network page handy; it lists the endpoint details OnFinality supports.

Official Abstract RPC endpoints

The official documentation publishes these connection details:

Network Chain ID HTTP RPC WebSocket RPC
Mainnet 2741 (0xab5) https://api.mainnet.abs.xyz wss://api.mainnet.abs.xyz/ws
Testnet 11124 https://api.testnet.abs.xyz wss://api.testnet.abs.xyz/ws

Both networks use ETH as the native currency. The mainnet explorer is Abscan at https://abscan.org. The testnet explorer is https://sepolia.abscan.org.

That table answers the common question "what is the Abstract chain RPC endpoint" for mainnet and testnet. The next step is to verify that the endpoint behaves correctly.

Verify the endpoint with eth_chainId

Use curl to confirm you are talking to the right chain. This call should return 0xab5 for mainnet.

curl -X POST https://api.mainnet.abs.xyz \
  -H \"Content-Type: application/json\" \
  --data '{\"jsonrpc\":\"2.0\",\"method\":\"eth_chainId\",\"params\":[],\"id\":1}'
Enter fullscreen mode Exit fullscreen mode

Expected response:

{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":\"0xab5\"}
Enter fullscreen mode Exit fullscreen mode

To confirm the node is synced, compare the latest block with what the explorer shows:

curl -s https://api.mainnet.abs.xyz \
  -H \"Content-Type: application/json\" \
  --data '{\"jsonrpc\":\"2.0\",\"method\":\"eth_blockNumber\",\"params\":[],\"id\":1}'
Enter fullscreen mode Exit fullscreen mode

The response is a hex block number. If it is stale, try another endpoint or check the provider's status.

Connect a wallet or dApp to Abstract

To add Abstract to MetaMask manually, enter these values:

For dApps, define the chain in your EVM library. A viem config looks like this:

import { defineChain } from 'viem';

export const abstractMainnet = defineChain({
  id: 2741,
  name: 'Abstract',
  nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
  rpcUrls: {
    default: { http: ['https://api.mainnet.abs.xyz'] },
  },
  blockExplorers: {
    default: { name: 'Abscan', url: 'https://abscan.org' },
  },
});
Enter fullscreen mode Exit fullscreen mode

Ethers.js works the same way: instantiate JsonRpcProvider with the RPC URL and chain ID. The abstract RPC endpoint behaves like an Ethereum endpoint, so you keep your existing code paths and add Abstract as another chain configuration.

Public vs managed Abstract RPC endpoints

Public endpoints are convenient for local development, but the decision gets more complex when users depend on your dApp. Use the same criteria you would apply to any EVM chain:

Criterion What to check Why it matters
Throughput Does the endpoint return 429 errors under a request burst? Public endpoints can throttle requests at the wrong time.
Archive data Can you query old balances, historical eth_call, and large eth_getLogs ranges? Indexers, analytics, and some DeFi features need archive state.
WebSocket stability Subscribe to newHeads and leave the connection idle; count disconnects. Real-time applications break if WSS drops frequently.
Geographic routing Where are the entry points? Measure latency from your main user regions. High latency makes wallet transactions feel slow.
Cost model Is it per request, per monthly plan, or per dedicated node? Costs should stay predictable as traffic grows.
Failover behavior Can you rotate among multiple healthy endpoints? A single endpoint is a single point of failure.

Managed RPC providers usually cover several of these criteria. OnFinality exposes Abstract through its API service and also offers dedicated node capacity for teams that need isolated infrastructure. You can compare pricing on RPC pricing and inspect all supported networks on supported RPC networks. For teams that only use the official public endpoint, a fallback plan is still necessary.

Common Abstract RPC failure modes and how to debug them

EVM RPC errors are usually easy to diagnose once you know the shape of the failure.

  • 429 Too Many Requests: The endpoint is rate limited. Add exponential backoff and retry, or move traffic to a managed provider.
  • Nonce too low or replacement transaction underpriced: The wallet's nonce is out of sync. Check pending transactions and reset the nonce in the signing tool.
  • Missing trie node or header not found: The endpoint does not have the historical state you requested. Use an archive endpoint.
  • eth_getLogs timeout: The filter range is too broad. Split it into smaller ranges and batch requests.
  • WebSocket disconnects: A public WSS endpoint may drop long-lived connections. Implement reconnection and resubscribe to newHeads after reconnect.
  • eth_chainId returns the wrong chain: The client is pointed at the wrong URL. Verify the endpoint against the table above.

If you suspect the endpoint itself is unhealthy, compare its latest block height with the explorer and check response times from multiple locations. A healthy endpoint should not lag the canonical chain for long.

When to move to managed RPC infrastructure

The transition from public RPC to managed infrastructure is a scaling decision, not a preference. Symptoms include frequent 429 errors, WSS disconnects, stale blocks, and missing archive state. Once you see those, your users' transactions are at risk.

A managed RPC provider removes node operations: you do not need to install clients, monitor sync, apply software upgrades, or maintain failover. OnFinality's API service provides managed endpoints for Abstract and many other networks. For heavier workloads, a dedicated node gives you your own instance and the freedom to tune limits around your use case.

Before choosing a provider, test its Abstract endpoint with your real workload. Send a few hundred eth_call requests, listen to newHeads for ten minutes, and query archive data if you need it. This is the most reliable way to see whether the infrastructure matches your app.

Key Takeaways

  • The Abstract mainnet RPC endpoint is https://api.mainnet.abs.xyz with chain ID 2741 (0xab5).
  • The Abstract testnet RPC endpoint is https://api.testnet.abs.xyz with chain ID 11124.
  • Abstract is EVM-compatible, so standard Ethereum JSON-RPC methods work with your existing tooling.
  • Public endpoints are fine for development; production apps should evaluate throughput, archive support, WSS stability, and failover.
  • OnFinality supports Abstract through managed RPC and dedicated node options. See RPC pricing and supported RPC networks for details.

Frequently Asked Questions

Is Abstract an EVM-compatible chain?

Yes. Abstract exposes Ethereum JSON-RPC and is compatible with EVM wallets, libraries, and indexers. It also includes zkSync-compatible methods for ZK Stack features.

What is the Abstract mainnet chain ID?

The mainnet chain ID is 2741, hex 0xab5. The RPC URL is https://api.mainnet.abs.xyz.

Does Abstract have a public testnet?

Yes. The testnet uses chain ID 11124, HTTP RPC https://api.testnet.abs.xyz, and the explorer at https://sepolia.abscan.org.

Can I use ethers.js or viem with Abstract?

Yes. Point JsonRpcProvider or defineChain at the Abstract RPC endpoint and set the correct chain ID. Existing Ethereum code paths work with minor configuration changes.

Where can I get an Abstract RPC endpoint from OnFinality?

OnFinality supports Abstract on its network page. Managed access is available through the API service, and teams that need isolated capacity can use dedicated nodes.

Related resources

Originally published at OnFinality.

Top comments (0)