Skip to main content
Sigil is a small monorepo. Each piece does one job, and each chain is used for the one thing it is best at.
Sigil system architecture

The system at a glance: web, gateway, agent and sandbox off-chain; Hedera, Arc and World underneath. The red arrow is the money path.

The parts

Why three chains

No single chain does all three jobs well.

Personhood is load-bearing, not decoration

Here is the attack Sigil has to stop. One operator opens a claim from wallet A, then disputes it from wallet B with a trace they know will fail to reproduce. They lose the bond back to themselves, and now own a skill with a “survived a challenge” history. Total cost: gas. Sigil stores the World Selfie Check nullifier (a per-person, per-app identifier) on every claim and every dispute. A dispute whose nullifier matches the claim’s is refused with 409 — one personhood proof cannot hold both sides of a claim. The contract also rejects a disputer who is the staker. The rule is tested, and enforced the same way in mock mode and in production.

Key addresses and IDs

Hedera registry topic

0.0.10483153 — every skill, claim, and identity is announced here.

Licence NFT (HTS)

0.0.10483154 — minted to each payer on settlement.

SigilStake (Arc)

0x66fc6324…1566fe — holds the staked USDC and pays the winner.

DisputeResolver (Arc)

0xb741a78b…56e1a8 — records the verifier’s verdict on-chain.
The deep contract of every HTTP route, ABI, and HCS message is in ARCHITECTURE.md in the repo.