Enjin RPC with Dwellir
Production-ready JSON-RPC documentation for Enjin Matrixchain covering endpoints, best practices, and chain-specific APIs such as fuel tanks and managed wallets.
Enjin RPC
With Dwellir, you get access to our global Enjin network which always routes your API requests to the nearest available location, ensuring low latency and the fastest speeds.
Get your API keyWhy Build on Enjin Matrix?
NFT-First Runtime
- Protocol-level NFT minting, on-chain metadata, and marketplace enforcement remove the need for bespoke smart contracts (Enjin Blockchain overview).
- ENJ-denominated fees are tuned for games and app developers, giving predictable operating costs for live services (Enjin Blockchain overview).
Fuel Tanks & Managed Wallets
- Fuel tanks sponsor transaction fees for specific players or apps, smoothing onboarding into Matrixchain (Fuel Tanks docs).
- Managed wallets let users receive NFTs before creating self-custodial accounts, ideal for mainstream launches (Managed wallets docs).
Dual-Layer Security
- Matrixchain execution is secured by the Enjin Relaychain, combining Aura authoring with relay-governed GRANDPA finality (Enjin Blockchain overview).
- Custom matrixchains can connect while inheriting the same security and cross-chain routing primitives provided by the Relaychain (Enjin Blockchain overview).
Quick Start with Enjin
curl -sS -X POST https://api-enjin-matrixchain.n.dwellir.com/<API_Keys_Are_Not_Made_for_Bots> \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","method":"chain_getBlockHash","params":[0],"id":1}'import { ApiPromise, WsProvider } from '@polkadot/api';const provider = new WsProvider('wss://api-enjin-matrixchain.n.dwellir.com/<API_Keys_Are_Not_Made_for_Bots>');const api = await ApiPromise.create({ provider });const hash = await api.rpc.chain.getBlockHash(0);console.log(hash.toHex());from substrateinterface import SubstrateInterfacesubstrate = SubstrateInterface(url='wss://api-enjin-matrixchain.n.dwellir.com/<API_Keys_Are_Not_Made_for_Bots>')block_hash = substrate.get_block_hash(block_id=0)print(block_hash)package mainimport ( "bytes" "fmt" "io" "net/http")func main() { url := "https://api-enjin-matrixchain.n.dwellir.com/<API_Keys_Are_Not_Made_for_Bots>" payload := []byte(`{"jsonrpc":"2.0","id":1,"method":"chain_getBlockHash","params":[0]}`) resp, err := http.Post(url, "application/json", bytes.NewBuffer(payload)) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body))}Get your API key
Sign up at the Dwellir dashboard to generate an API key, then replace YOUR_API_KEY in the endpoints above. Keys can be scoped per environment to manage limits and analytics.
Installation & Setup
Network Information
| Parameter | Value | Details |
|---|---|---|
| Genesis Hash | 0x3af4ff48ec76d2efc8476730f423ac07e25ad48f5f4c9dc39c778b164d808615 | Verified via chain_getBlockHash(0) |
| Runtime Spec | 1022 | Transaction version 11 (state_getRuntimeVersion) |
| SS58 Prefix | 1110 | system_properties result |
| Native Token | ENJ | 18 decimals (system_properties) |
Matrix Ecosystem Snapshot (3 Oct 2025)
| Parameter | Value | Details |
|---|---|---|
| Relay Chain | Enjin Relaychain | 0xd8761d3c88f26dc12875c00d3165f7d67243d56fc85b4cf19937601a7916e5a9, verified via chain_getBlockHash(0) on archive.relay.blockchain.enjin.io |
| Finality | Aura authorship with GRANDPA finality | Shared by the Enjin Relaychain |
| Address Format | SS58 prefix 1110 | Returned by system_properties on archive.matrix.blockchain.enjin.io |
| Runtime | Spec version 1022, transaction version 11 | state_getRuntimeVersion on archive.matrix.blockchain.enjin.io |
| Explorers | Matrix Console | Mainnet and canary |
| Canary Runtime | Enjin Matrix Canary | wss://api-enjin-canary-matrix.n.dwellir.com/YOUR_API_KEY |
API Reference
Enjin Matrix exposes the standard Substrate RPC surface for node health, storage, extrinsics, and fee estimation, with additional Matrix-specific namespaces such as fuelTanks_*, multitokens_*, ismp_*, and transactionWatch_v1_* available depending on your environment and authorization scope.
Tip: Use
rpc_methodsto verify which optional namespaces (fuel tanks, multitokens, ISMP) are enabled for your API key and environment.
Additional Substrate namespaces such as childstate_*, offchain_*, and read-proof helpers follow the standard Substrate semantics; their availability depends on node configuration and authorization. Use rpc_methods to inspect support before invoking them from clients.
Common Integration Patterns
- Fuel tank sponsorship – poll
fuelTanks_selectFuelTankto determine which tank will cover fees for a user, then handle top-ups via governance-controlled accounts. - Managed wallet onboarding – detect custodial wallets via metadata and migrate them to self-custody by monitoring
Balances.Transferevents to managed accounts. - NFT marketplace indexing – subscribe to
chain_subscribeFinalizedHeads, pull block extrinsics, and decode marketplace pallets to track listings, royalty enforcement, and burns.
Performance Best Practices
- Prefer WebSocket endpoints for subscriptions and batched queries; fall back to HTTPS for stateless reads.
- Cache runtime metadata keyed by
specVersionto avoid re-fetching large SCALE blobs on each connection. - Use
state_getKeysPagedwith modest page sizes (≤500) when walking storage maps to respect rate limits. - Implement exponential backoff and retry logic for transient
429or networking errors.
Troubleshooting
- Connection refused – ensure
YOUR_API_KEYis present and the hostname matches the region you activated in Dwellir. - Invalid SS58 – use prefix
1110when encoding Matrixchain addresses; relay chain accounts use prefix2135. - Extrinsic failures – decode the
DispatchErrorusing the latest metadata; many marketplace pallets return module-specific error codes. - Missing custom RPCs – extend Polkadot.js type bundles with Enjin-specific RPC definitions when
API/INITwarns about undecorated methods.
Smoke Tests
Run these endpoints after deployment to validate connectivity:
# Health (should report peers > 0)
curl -s https://api-enjin-matrixchain.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"system_health","params":[],"id":1}'
# Latest finalized hash
curl -s https://api-enjin-matrixchain.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"chain_getFinalizedHead","params":[],"id":2}'
# Runtime versions
curl -s https://api-enjin-matrixchain.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"state_getRuntimeVersion","params":[],"id":3}'
# RPC surface area
curl -s https://api-enjin-matrixchain.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"rpc_methods","params":[],"id":4}'Migration Guide (Polkadot/Westend → Enjin Matrix)
- Endpoints – replace legacy Polkadot/Westend RPC URLs with Dwellir Matrix endpoints listed above.
- Address format – re-encode accounts with SS58 prefix
1110; update wallet tooling accordingly. - Fee economics – call
payment_queryInfoto account for ENJ-denominated fees and optional fuel tank sponsorships. - Runtime pallets – verify availability of Matrix-specific pallets (fuel tanks, managed wallets) and adjust type bundles.
- Event handling – update indexers to interpret Enjin marketplace and multitoken events instead of Polkadot parachain events.
Resources & Tools
- Enjin Blockchain Technology Overview – architecture, performance targets, and ecosystem highlights.
- Console Explorer – monitor blocks, accounts, and collections across mainnet and canary.
- Dwellir Dashboard – manage API keys, usage analytics, and plan limits.
- Subscan (Matrixchain) – alternative explorer for validators and extrinsics.
Ready to go live? Deploy against Matrix mainnet using Dwellir’s globally anycasted infrastructure, then automate observability with the smoke tests above.
eth_coinbase
Check the legacy eth_coinbase compatibility method on Cronos. Public endpoints may return an address, `unimplemented`, or another unsupported-method response depending on the client.
chain_getBlock
Retrieve block data by hash on Enjin. Essential for accessing block headers and extrinsics on the purpose-built NFT blockchain with protocol-level minting and $100M Metaverse Fund.

