Native typed executor
The native executor handles 58 transaction variants directly in Rust. Each variant has a typed argument struct, a deterministic semantic check, and an apply function that writes to AkashaKV under a typed state partition. The native path is preferred for primitives that benefit from being uniformly available, deterministic, and gas-free: transfers, validator operations, DEX swaps, NFT mints, name registration, mail delivery commitments, mandate issuance, and Vigil callbacks. The executor is split per category innode/sigil-node/src/executor_*.rs. Adding a new primitive is a change to sigil-core (types) and sigil-node (executor), tested under node/sigil-node/tests/.
System contracts
Chain policy lives in privileged WASM system contracts. The registry is deployed at genesis and addressable by canonical name. The full set:| Name | Owns |
|---|---|
sigil.system.parameters | Scheduled protocol parameters, activation heights, emission policy. |
sigil.system.validator_registry | Validator candidates, keys, regions, status. |
sigil.system.staking | Bonded stake, delegation shares, undelegation queue, slashing accounting. |
sigil.system.governance | Proposals, votes, timelocks, emergency actions. |
sigil.system.treasury | Reserve accounts and disbursement ledger. |
sigil.system.dex | AMM pool policy, fee tiers, listing rules. |
sigil.system.compute | Provider registry policy, verification tier policy. |
sigil.system.labor | Labor market policy, dispute multisig, review rules. |
sigil.system.governance plus a 90-day timelock. The upgrade is the only mechanism to change a system contract; there is no admin key.
Organisation zones
Zones are scoped WASI execution environments owned by an organisation DID. A zone can:- Deploy private contracts in the zone’s namespace.
- Hold its own balance.
- Route messages to other zones through CZAC channels.
- Pin storage through the storage marketplace.
- Mint zone-local tokens and NFTs.
mhr operating under a FROST threshold.
Implementation: node/sigil-zone/src/*.rs. CZAC: node/sigil-czac/src/*.rs.
Gas accounting
| Surface | Gas model |
|---|---|
| Native typed executor | No gas. Per-class fee paid at admission. |
| System contracts | Wasmtime gas, paid by the caller. |
| Organisation zones | Wasmtime gas, paid by the zone or the caller. |
sigil.system.parameters.
Determinism
All three surfaces are deterministic:- The native executor has no floating-point arithmetic, no wall-clock reads, no network I/O.
- Wasmtime is compiled with non-deterministic features disabled (no SIMD instructions that vary across CPUs, no threads, no
nanpayload propagation). - All randomness comes from the on-chain randomness beacon.
node/sigil-fuzz/.
Limits
| Limit | Value |
|---|---|
| Max contract size | 2 MiB |
| Max transaction size | 64 KiB (4 MiB for sigil_sendTransaction) |
| Max batch envelope | 16 MiB |
| Max gas per call | 100,000,000 units |
| Max stack depth | 512 frames |
| Max per-tx storage writes | 1,024 |