Fee Structure

Summary

Fees are paid in native DMS (18 decimals), calculated from a transaction's weight and byte length rather than a flat per-signature charge. Real fee estimates are available before signing via payment_queryInfo.

Fee calculation

EmpoorioChain uses the standard Substrate pallet-transaction-payment model, configured as:

Transaction payment config
impl pallet_transaction_payment::Config for Runtime {
// ...
OperationalFeeMultiplier = ConstU8<5>,
WeightToFee = IdentityFee<Balance>,
LengthToFee = IdentityFee<Balance>,
// ...
}

The total fee combines two components:

  • Weight fee: derived from the computational weight of executing the call — how expensive it is for the runtime to process, not a fixed per-signature charge.
  • Length fee: derived from the transaction's byte length, using TransactionByteFee.

Both native pallet extrinsics and Solidity (EVM) transactions settle fees in the same native DMS Balances pallet — there is no separate gas token.

DMS decimals

DMS uses 18 decimals:

DMS unit
pub const DMS_UNIT: u128 = 1_000_000_000_000_000_000; // 10^18

Real fee estimation before signing

The node's RPC surface registers pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, so payment_queryInfo and payment_queryFeeDetails return a real, pre-signature fee estimate for a given call — this isn't a simulated or aspirational feature.

Measured fee snapshot (testnet)

The table below reflects a real measured fee snapshot taken from testnet. Treat it as illustrative — fees can change as the runtime is upgraded — but these are actual observed costs, not estimates:

OperationExtrinsicFee (DMS)
DMS transferbalances.transfer_allow_death0.000025
Mint single NFTmusicNft.mint_track0.000075
Batch mint (10)musicNft.mint_track_batch0.000280
Create NFT collectionuniques.create0.000120
DEX swapdex.swap0.000180
Lending depositlending.deposit0.000150
AI inference (ZK Groth16 verify)aiServing.submit_inference_result0.003500

An earlier version of this snapshot also listed a contracts.instantiate_with_code row ("WASM smart contract deployment"). That row has been removed here: as covered in Programs, pallet-contracts is not currently wired into the compiled runtime, so WASM contract deployment isn't a real, chargeable operation today. Don't rely on a fee figure for it.

Fee-reduction mechanisms

Several pallets exist specifically to reduce or restructure who pays a given fee:

  • pallet-account-abstraction + pallet-paymaster: native fee sponsorship (gasless transactions), letting a third party cover a user's fee. Both are compiled and connected in the runtime, but this feature is documented as only partially hardened — deep, universal validation of paymaster policy before pre-dispatch is still described as missing in the project's own capability status. Don't assume every sponsorship path is fully safe against abuse yet.
  • pallet-creator-studio-fees: up to a 50% fee discount tied to Proof-of-Unique-Human / SSI reputation.
  • pallet-state-rent: storage rent intended to keep base fees flat over time as chain state grows.

What's still undecided

The distribution of collected fees — how much (if any) is burned versus sent to the treasury versus validators versus tips — is an explicitly open, unresolved item in the project's own runtime planning documents. Don't publish or rely on a specific fee-distribution split; only "fees are charged, denominated in DMS, and calculated from weight and length" is currently confirmed.

Is this page helpful?

Índice

Editar Página