EmpoorioChain does not have an equivalent of other chains' permissionless, per-account on-chain program deployment model. Instead, on-chain logic is added and used in two different ways, and it's important to know which one you're dealing with.
Native pallets: compiled in, not deployed
Most of EmpoorioChain's functionality — fungible assets, NFTs, governance,
DeFi primitives, storage markets, AI-related functionality, and well over a
hundred other domains — ships as pallets: Rust modules compiled directly
into the runtime binary and assembled at compile time via
construct_runtime!. A pallet defines its own storage items, events,
errors, and dispatchable calls (the pallet equivalent of a smart contract's
public functions).
For an app developer, this means the overwhelmingly common workflow on EmpoorioChain is calling the dispatchable functions of an existing pallet — transfer an asset, mint an NFT, open a governance proposal, submit a storage deal — via extrinsics, not writing and deploying new on-chain code. New pallet logic (or a change to an existing pallet) requires a governed runtime upgrade: a new WASM runtime blob approved through the chain's governance process and activated for every account on the network simultaneously.
The EVM pallet: permissionless Solidity deployment
For teams that specifically want an Ethereum-style, permissionless per-app
deployment workflow, EmpoorioChain ships a built-in EVM compatibility
pallet (pallet-evm + pallet-ethereum, part of the Frontier stack,
compiled in by default). Solidity contracts can be deployed and called
through it using standard Ethereum tooling — Hardhat, Foundry,
ethers.js/viem — pointed at EmpoorioChain's EVM-JSON-RPC endpoint. This is
the closest thing EmpoorioChain has to other chains' "anyone can deploy a
program" model, and it's real and shipped, not aspirational.
ink!/WASM contracts: not currently working
EmpoorioChain's dependency tree includes pallet-contracts (the
Substrate/ink! smart-contract pallet) behind a vm-wasm feature flag that
is on by default — which can give the impression that ink!/WASM contract
deployment is supported. It is not. There is no Contracts entry in the
compiled runtime and no Config implementation for the pallet. A runtime
WASM VM adapter exists, but its own source comments confirm it does not
execute WASM contract bytecode. Do not rely on ink! contract deployment
until this is explicitly wired in and documented as working.
A related, separately-named pallet — pallet-file-contracts — is easy to
confuse with a smart-contracts pallet because of its name. It is not one:
it manages long-term storage deals with SLAs and penalties, not executable
code deployment.
For the full pallets-vs-smart-contracts comparison with Ethereum, see EVM to EmpoorioChain: Smart Contracts on empoorio.org.
Is this page helpful?


