⚠️Blast API (blastapi.io) ends Oct 31. Migrate to Dwellir and skip Alchemy's expensive compute units.
Switch Today →
Skip to main content

Acala – DeFi Hub Parachain on Polkadot

Acala RPC
With Dwellir, you get access to our global Acala network which always routes your API requests to the nearest available location, ensuring low latency and the fastest speeds.

Get your API key →

Why Build on Acala?

Acala is a DeFi-focused parachain on the Polkadot relay chain that provides a stablecoin (aUSD), liquid staking (LDOT), and EVM+Substrate interoperability. Built on Substrate, Acala exposes the standard JSON‑RPC namespaces developers rely on for production‑grade integrations.

🚀 DeFi Primitives Out of the Box

  • aUSD stablecoin, LDOT liquid staking, DEX and more, available through standard pallets and EVM.
  • Seamless cross‑chain asset routing via XCM to and from Polkadot ecosystems.

🧰 Familiar Tooling

  • Works with polkadot.js, Subxt (Rust), and py‑substrate‑interface (Python).
  • Dwellir provides globally anycasted endpoints with low‑latency routing and high availability.

🔒 Security Inherited from Polkadot

  • As parachain 2000 on Polkadot, Acala benefits from shared security and fast finality.

Quick Start

Connect to Acala’s production endpoints.

🔗 RPC Endpoints

Acala (Parachain 2000) — Mainnet
Mainnet
Archive-enabled WebSocket + HTTPS with global routing.
WSS
wss://api-acala.n.dwellir.com/YOUR_API_KEY
HTTPS
https://api-acala.n.dwellir.com/YOUR_API_KEY
✓ Archive Node✓ Trace API✓ Debug API✓ WebSocketRelay: PolkadotParachain ID: 2000

Quick Connect:

curl -X POST https://api-acala.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

Installation & Setup

import { ApiPromise, WsProvider } from '@polkadot/api';

async function main() {
const provider = new WsProvider('wss://api-acala.n.dwellir.com/YOUR_API_KEY');
const api = await ApiPromise.create({ provider });

const [chain, version] = await Promise.all([
api.rpc.system.chain(),
api.rpc.system.version(),
]);

console.log(`Connected to ${chain.toString()} v${version.toString()}`);

// Subscribe to new blocks
const unsub = await api.rpc.chain.subscribeNewHeads((header) => {
console.log(`New block #${header.number} ${header.hash.toHex()}`);
});

// Stop after 3 blocks
setTimeout(async () => { await unsub(); await api.disconnect(); }, 18000);
}

main().catch(console.error);

Network Information

Genesis Hash

0xfc41b9bd…ba64c

Verified via chain_getBlockHash(0)

Native Token

ACA

12 decimals

SS58 Prefix

10

Address format

Runtime Spec Version

2300

state_getRuntimeVersion (Oct 9, 2025)

Transaction Version

3

state_getRuntimeVersion

Explorer

Subscan

acala.subscan.io

Acala runs as Polkadot parachain 2000. Token properties and address prefix were verified using system_properties; genesis hash via chain_getBlockHash(0); runtime versions via state_getRuntimeVersion on October 9, 2025.

Substrate JSON‑RPC API Reference

Acala exposes the core Substrate RPC namespaces for node telemetry, block production, storage access, and transaction submission. Use the menu below to open the method guides.

Available JSON-RPC Methods

System & Runtime

Identify the chain, runtime versions, and node health.

+

Chain Data & Finality

Inspect blocks, headers, and finality streams.

+

State Access & Storage

Query storage, metadata, and runtime entry points.

+

Authoring & Sessions

Submit extrinsics and manage session keys.

+

Fees & Payment

Estimate fees for signed extrinsics (pre-broadcast).

+

RPC Introspection

Discover supported RPC namespaces and versions.

+

Ready to integrate Base into your dApp?

Get your API key →

Common Integration Patterns

Subscribe to Finality and New Heads

const unsubFinal = await api.rpc.chain.subscribeFinalizedHeads((h) =>
console.log(`Finalized #${h.number} ${h.hash.toHex()}`)
);
const unsubNew = await api.rpc.chain.subscribeNewHeads((h) =>
console.log(`New #${h.number}`)
);

Paginate Large Storage Scans

const keys = await api.rpc.state.getKeysPaged(
// System.Account prefix
'0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9',
100,
'0x',
null
);
console.log('Fetched', keys.length, 'keys');

Estimate Fees Before Broadcasting

const ext = api.tx.balances.transferAllowDeath('ADDRESS', 1_000_000_000_000);
const info = await api.rpc.payment.queryInfo(ext.toHex());
console.log(`PartialFee: ${info.partialFee.toHuman()}`);

Performance Best Practices

  • Prefer WebSocket connections for subscriptions and multi‑round queries.
  • Cache runtime metadata and type bundles; reuse ApiPromise across requests.
  • Use state_getKeysPaged for large map scans; avoid full‑chain scans.
  • Implement reconnection/backoff and share a connection pool across services.

Troubleshooting

  • Connection refused: ensure your API key is appended and outbound TCP/443 is allowed.
  • Invalid SS58: addresses must use prefix 10 for Acala.
  • Type errors: refresh metadata after runtime upgrades (api.runtimeVersion).
  • Extrinsic failed: decode dispatch error via api.registry.findMetaError.

Smoke Tests

Run these minimal checks against production endpoints (captured Oct 9, 2025):

# Node health (peers ≈ 15, isSyncing false)
curl -s https://api-acala.n.dwellir.com/YOUR_API_KEY \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"system_health","params":[]}'

# Latest block header (e.g. number ~ 9617916)
curl -s https://api-acala.n.dwellir.com/YOUR_API_KEY \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"chain_getHeader","params":[]}'

# Finalized head hash (e.g. 0xdcdcc29c…f13e7)
curl -s https://api-acala.n.dwellir.com/YOUR_API_KEY \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"chain_getFinalizedHead","params":[]}'

# Runtime versions (specVersion 2300, transactionVersion 3)
curl -s https://api-acala.n.dwellir.com/YOUR_API_KEY \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"state_getRuntimeVersion","params":[]}'

Migration Guide (from Polkadot/Kusama)

  • Endpoints: replace with https://api-acala.n.dwellir.com/YOUR_API_KEY or wss://api-acala.n.dwellir.com/YOUR_API_KEY.
  • Addresses: re‑encode SS58 addresses with prefix 10.
  • Types: include Acala custom types where applicable; refresh metadata after upgrades.
  • Fees: re‑calibrate using payment_queryInfo; fee multipliers differ across chains.

Resources & Tools