Tokens on EmpoorioChain

Tokens on EmpoorioChain are managed by native FRAME pallets compiled directly into the runtime binary, not by permissionless on-chain programs a developer deploys themselves. There is no equivalent of deploying your own "token program" — you call the extrinsics exposed by whichever pallet matches the kind of token you need.

EmpoorioChain does not have a account/program-style permissionless program deployment model for native pallets. Adding genuinely new token logic at the pallet level requires a governed runtime upgrade. What follows below is about using the token pallets that are already compiled into the runtime today — which covers the overwhelming majority of real use cases (issuing an asset, minting an NFT collection, running a permissioned RWA token) without writing any new runtime code.

If you specifically want a per-application, permissionlessly-deployed token contract (the closest thing to what another chain's token program gives you), the closest equivalent is deploying a standard ERC-20 or ERC-721 Solidity contract through EmpoorioChain's EVM-compatible layer (pallet-evm / pallet-ethereum), using ordinary tooling like Hardhat, Foundry, or ethers.js/viem pointed at the chain's Ethereum-JSON-RPC endpoint. That path is real and shipped today.

Fungible tokens

See Fungible Tokens. Backed by pallet-emp-assets (runtime index 23) — general create/mint/burn/transfer/freeze-style asset management.

NFTs

See NFTs. Backed by pallet-uniques (runtime index 24) for standard NFT collections, and pallet-emp-nft (runtime index 53) for additional NFT logic used by Eoonia Wallet.

RWA / permissioned tokens

See RWA & Permissioned Tokens. Backed by pallet-emp-rwa (runtime index 54) for compliance-gated tokens representing real-world assets.

Confidential transfers & data extensions

See Extensions. Covers pallet-privacy (runtime index 17) for ZK-based confidential transfers and GDPR-style consent management, and pallet-sbt (runtime index 66) for non-transferable / soulbound tokens.

Exact extrinsic names and parameters below are described at a general, capability level. Verify exact call signatures against live chain metadata (e.g. api.rpc.state.getMetadata() via @polkadot/api, or your SDK's generated bindings) before writing production code — some of these pallets are wired into the runtime under aliases to upstream Substrate crates rather than the exact custom crate documented in the project's internal pallet inventory, so a hand-copied extrinsic list risks being stale or wrong.

Is this page helpful?

Table of Contents

Edit Page