---
title: Runtime logic on EmpoorioChain — pallets, not programs
description: How application logic is deployed on EmpoorioChain — call a runtime pallet, or deploy Solidity on the Frontier EVM. There is no "program" model.
---

# Runtime logic on EmpoorioChain (default choice: call a pallet)

EmpoorioChain is a Substrate runtime with 140 pallets. Most applications do not deploy code at all: they submit extrinsics to pallets that already exist in the live runtime (spec 220).

## When to call a pallet

Use an existing pallet when what you need is already runtime logic:

- Fungible tokens → `pallet-emp-assets` (24 extrinsics; DUSD is asset #1)
- NFTs → `pallet-uniques`, `pallet-emp-nft`, `pallet-dynamic-nft`, `pallet-music-nft`, `pallet-video-nft`, `pallet-sbt`, `pallet-fractional-nft`
- Commerce → `pallet-escrow`, `pallet-logistics`, `pallet-subscription`, `pallet-paymaster`, `pallet-marketplace`
- Compliance / identity → `pallet-compliance`, `pallet-sanctions`, `pallet-identity-ssi`, `pallet-emp-rwa`
- DeFi → `pallet-dex`, `pallet-lending`, `pallet-yield-vault`, `pallet-flashloan`, `pallet-derivatives`
- Staking / governance → `pallet-emp-staking`, `pallet-community-governance`, `pallet-gov-boundary`

Client code is an ordinary extrinsic: `api.tx.<pallet>.<call>(...)` with `@polkadot/api`, the Dart SDK (`empoorio_chain_sdk`, regenerated against the live metadata) or the Rust SDK.

## When to deploy Solidity

Use the Frontier EVM (chain id 2026, `0x7ea`) when you have existing Solidity or need arbitrary custom logic. Gas is 1 gwei since runtime 220; DMS is visible as ERC-20 through a precompile. The same seed yields an sr25519 account and an H160; fund the H160 from the native account.

## When to write a pallet

New runtime logic means a new pallet compiled into the runtime and shipped by an in-place upgrade (208 → 220 happened in two weeks). That path is governance, not `deploy`: propose, audit, upgrade. No external team has done it yet.

## Not available

- Wasm smart contracts (`pallet-contracts` / ink!) are not in the runtime.
- There is no IDL, PDA, CPI or account-rent model; the equivalents are metadata, storage maps and pallet-to-pallet calls inside the runtime.
- No mainnet. Build on the public testnet: `https://rpc.testnet.empooriochain.org` (10 req/s per IP).

See `/llms-full.txt` for the full identifier list and the extrinsic envelope.
