Skip to main content

Build on Enjin Matrix – The NFT-Native Application Layer

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#

🔗 RPC Endpoints

Matrix Mainnet
Mainnet
Production Matrixchain secured by the Enjin Relaychain.
WSS
wss://api-enjin-matrixchain.n.dwellir.com/YOUR_API_KEY
✓ Archive Node✓ Trace API✓ Debug API✓ WebSocketFuel TanksMultitoken APIs

Quick Connect:

curl -X POST https://api-enjin-matrixchain.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"chain_getBlock","params":[],"id":1}'
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#

# Health check
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 head
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}'

Network Information#

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)
  • 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 per state_getRuntimeVersion on archive.matrix.blockchain.enjin.io
  • Explorers: Matrix Console (mainnet & canary)
  • Canary runtime: Enjin Matrix Canary (wss://api-enjin-canary-matrix.n.dwellir.com/YOUR_API_KEY)

Available JSON-RPC Methods#

Core Substrate Namespaces#

GroupPurposeReference
system_*Node identity, health, and network propertiessystem_chain, system_health, system_properties, system_version
chain_*Retrieve block data and follow new or finalized headschain_getBlockHash, chain_getBlock, chain_getHeader, chain_getFinalizedHead, chain_subscribeNewHeads, chain_subscribeFinalizedHeads
state_*Read storage, query metadata, and execute runtime APIsstate_call, state_getKeys, state_getKeysPaged, state_getMetadata, state_getRuntimeVersion, state_getStorage
author_*Submit signed extrinsics and stream lifecycle eventsauthor_submitExtrinsic, author_submitAndWatchExtrinsic, author_pendingExtrinsics, author_rotateKeys
payment_*Estimate fees payable in ENJpayment_queryInfo, payment_queryFeeDetails
rpc_methodsEnumerate every RPC namespace exposed by your noderpc_methods
childstate_*Interact with child tries used by palletschildstate_getKeys, childstate_getKeysPaged, childstate_getStorage
offchain_*Inspect or mutate node-local offchain worker storageoffchain_localStorageGet, offchain_localStorageSet

Matrix-Specific Extensions#

NamespacePurposeNotes
fuelTanks_*Determine sponsorship coverage from fuel tanksRequires authenticated access; discover endpoints via rpc_methods.
multitokens_*Read cross-game NFT inventory and claimable dropsReturns managed-wallet data for onboarding flows.
ismp_*Inspect interoperability packets and consensus stateEnables monitoring for custom matrixchains secured by Enjin Relaychain.
transactionWatch_v1_*Subscribe to transaction status without author RPCLightweight watchers for infrastructure dashboards.

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:

# 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.