Docs

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 key

Why 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

Enjin RPC Endpoints
HTTPS
WSS
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

ParameterValueDetails
Genesis Hash0x3af4ff48ec76d2efc8476730f423ac07e25ad48f5f4c9dc39c778b164d808615Verified via chain_getBlockHash(0)
Runtime Spec1022Transaction version 11 (state_getRuntimeVersion)
SS58 Prefix1110system_properties result
Native TokenENJ18 decimals (system_properties)

Matrix Ecosystem Snapshot (3 Oct 2025)

ParameterValueDetails
Relay ChainEnjin Relaychain0xd8761d3c88f26dc12875c00d3165f7d67243d56fc85b4cf19937601a7916e5a9, verified via chain_getBlockHash(0) on archive.relay.blockchain.enjin.io
FinalityAura authorship with GRANDPA finalityShared by the Enjin Relaychain
Address FormatSS58 prefix 1110Returned by system_properties on archive.matrix.blockchain.enjin.io
RuntimeSpec version 1022, transaction version 11state_getRuntimeVersion on archive.matrix.blockchain.enjin.io
ExplorersMatrix ConsoleMainnet and canary
Canary RuntimeEnjin Matrix Canarywss://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_methods to 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_selectFuelTank to 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.Transfer events 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 specVersion to avoid re-fetching large SCALE blobs on each connection.
  • Use state_getKeysPaged with modest page sizes (≤500) when walking storage maps to respect rate limits.
  • Implement exponential backoff and retry logic for transient 429 or networking errors.

Troubleshooting

  • Connection refused – ensure YOUR_API_KEY is present and the hostname matches the region you activated in Dwellir.
  • Invalid SS58 – use prefix 1110 when encoding Matrixchain addresses; relay chain accounts use prefix 2135.
  • Extrinsic failures – decode the DispatchError using 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/INIT warns about undecorated methods.

Smoke Tests

Run these endpoints after deployment to validate connectivity:

Bash
# 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)

  1. Endpoints – replace legacy Polkadot/Westend RPC URLs with Dwellir Matrix endpoints listed above.
  2. Address format – re-encode accounts with SS58 prefix 1110; update wallet tooling accordingly.
  3. Fee economics – call payment_queryInfo to account for ENJ-denominated fees and optional fuel tank sponsorships.
  4. Runtime pallets – verify availability of Matrix-specific pallets (fuel tanks, managed wallets) and adjust type bundles.
  5. Event handling – update indexers to interpret Enjin marketplace and multitoken events instead of Polkadot parachain events.

Resources & Tools


Ready to go live? Deploy against Matrix mainnet using Dwellir’s globally anycasted infrastructure, then automate observability with the smoke tests above.