S
Sigil
on-chain heraldry
Liber Sigillorum  ·  Concerning the Mechanism

The Sigil
Whitepaper

On-chain heraldry on BNB Smart Chain, traded through PancakeSwap. A ledger, a banner, and a market that pays the bearer for being seen.

Anno chain MMXXVI Folio I  ·  v1.0 BSC Held in perpetuum

Abstract

Sigil is an on-chain heraldry protocol on BNB Smart Chain that turns a heraldic NFT collection into a working market position. A standalone fee oracle reads each wallet's holdings and computes their rank tier. Holders earn weekly yield from the Treasury, weighted by rank. Houses compete for the Champion crown and a 30% share of the weekly distribution. The fees collected from mints, foundings and motions accumulate inside the Treasury and are distributed each epoch. Liquidity providers operate on PancakeSwap V2, untouched by any of this. The whole apparatus settles in a single fungible token of fixed supply.

I.The Problem We Are Solving

Most NFT collections die on the second day. The art is minted, the hype is paid, the market is silent, and the holders are left looking at a thumbnail with no economic logic behind it. Royalties on secondary trades have been quietly defeated almost everywhere they were promised. Loyalty has become its own punishment.

Sigil rebuilds that contract from the wrong end. Instead of asking the secondary market to honor a royalty, the protocol gives holders a rank-weighted share of weekly Treasury yield, funded by protocol fees. The NFT becomes a permanent privilege card that pays the bearer for participating in the protocol over time.

II.Design Principles

III.The Fee Oracle

The SigilFeeOracle is a standalone read-only contract deployed alongside the core protocol. It reads each wallet's sigil holdings from SigilRegistry and house membership from HouseBook to compute a per-wallet fee tier. The oracle does not intercept swaps or modify trading behaviour on PancakeSwap; it serves as a public view layer that the dApp and off-chain indexers use to display each wallet's rank tier, yield weight and eligibility.

The economic benefit to holders comes through the Treasury distribution, not through swap fee modification. The oracle's tier computation determines how much of the weekly yield each holder receives. Higher ranks earn a greater weight in the distribution.

Tier weights

HoldingsYield weightEffective tier
No sigil0No yield
Esquire (rank 0)1xBase tier
Knight (rank 1)2x+1 rank
Baron (rank 2)3x+2 rank
Earl (rank 3)4x+3 rank
Comital (rank 4)5x+4 rank
Ducal (rank 5)6x+5 rank
+ House memberbonus-
+ Champion house30% shareTop tier

A Ducal holder who is a member of the current Champion house receives the highest yield tier: 6x base weight plus the 30% Champion share. An ordinary wallet with no sigil receives nothing. The differential is the structural advantage of belonging.

The oracle reads holdings from SigilRegistry and HouseBook live, on every query. There is no snapshotting, no manual claim, no enrollment. If you mint a sigil, your tier is recognised immediately.

IV.Sigils & Ranks

A sigil is an ERC-721 token containing a 4 KiB SVG, a 40-character motto, and a house affiliation. Mints cost 50 SIGIL paid into the Treasury. The first mint of a wallet is granted at rank 0 (Esquire) and promotes by holding: every 30 days that the same address keeps the same sigil, the rank ticks up one step, capped at 5 (Ducal).

Promotion is permissionless. Anyone may call promote(tokenId) for any sigil whose hold-time threshold has elapsed. The function reads promotedAt, checks the timestamp, increments the rank field by one, and emits an event. Off-chain indexers reflect the new rank within the same block.

Why time, not capital, drives rank

A pay-to-rank curve invites capital to outrun the people who actually use the protocol. Time, by contrast, is the one resource a deep wallet cannot purchase. A Ducal is therefore not a person who paid a fortune in SIGIL but a person who held one for 150 days. The rank advertises commitment, not bankroll.

V.Houses & The Honor Score

Anyone may found a house by paying 200 SIGIL and supplying a name and a motto. The contract derives the house ID as keccak256(name), which gives the namespace a clean uniqueness rule and makes squatting an explicit and priced action.

Members swear fealty for a 5 SIGIL fee. House founders may declare pacts and rivalries with other houses for the same fee. Every motion writes to the public ledger of declarations and increments a per-epoch honor score stored on-chain.

honor[epoch][house] += +5 on house founding +3 per fealty sworn +1 per pact declared (both sides) +2 per rivalry declared by this house -2 per rivalry declared against this house

At the end of each weekly epoch (block.timestamp / 7 days), the keeper crowns the house with the highest honor score as Champion. The crown is written immutably to championOf[epoch]. Champion-house members receive the highest yield tier for the following epoch, and receive a 30% slice of the Treasury distribution.

Honor is positive-sum among allies and zero-sum across rivalries. A house that founds, recruits, and pacts will accrue honor faster than a house that only declares rivalries. The score therefore rewards activity and visibility; it does not reward harassment.

VI.The Treasury

The SigilTreasury contract sits behind every fee event. Mint fees, founding fees, motion fees and direct deposits all accumulate as raw SIGIL inside it. Once per week, anyone may call distribute(epoch, holders, weights, totalWeight, championMembers) with the off-chain-computed arrays for that epoch.

The Treasury then writes per-account claim balances:

SliceShareRecipient
Holder yield50%NFT holders, weighted by rank (1, 2, 3, 4, 5, 6 for ranks 0-5)
Champion bonus30%Members of the previous epoch's Champion house, split equally
Burn20%SigilToken.burnFromTreasury reduces total supply

The distribute call is permissionless. Whoever finalizes an epoch pays the gas. On BNB Smart Chain, this gas cost is negligible - a fraction of a cent - making weekly distributions practical even for small treasuries. The keeper holds emergency drain rights for migration scenarios but no day-to-day authority over distributions.

Why holders pull instead of receive

A push distribution to thousands of holders is bounded by gas and risks failure halfway through the list. The pull pattern, where the contract writes a balance and the holder pulls when they want, is the only architecture that scales arbitrarily. Pending balances accumulate until claimed. There is no expiry.

VII.Tokenomics

$SIGIL has a hard supply cap of one million units, enforced at construction. There is no mint function and no inflationary path. The only quantitative changes to circulating supply happen through burnFromTreasury, which reduces total supply when the weekly 20% burn slice fires.

AllocationSupplyCustody & release
Liquidity (PancakeSwap V2)80%Paired with BNB at deploy. LP shares held by deployer for the launch window, then partially decentralised through governance.
Treasury seed10%Funds the first 12 weeks of yield while organic fee flow ramps. Streams to SigilTreasury on a 90-day vest.
House grants10%Discretionary grants to houses building public goods (chronicler, indexer, frontend). Multisig-gated, on-chain proposals.

No team or founder allocation. Every SIGIL that exists at genesis either backs liquidity, seeds the Treasury, or funds public-goods grants administered by on-chain proposal. The architects take no token rake.

The deflation curve

Each weekly distribution burns 20% of the Treasury balance at that moment. Over time, this compounds against fee inflows. A protocol earning 10,000 SIGIL of weekly fees burns 2,000 of them; the holder yield slice (5,000) increases scarcity by being routed to wallets that did not previously hold it. Together, both forces reduce free-floating supply faster than emissions ever could - because there are no emissions.

VIII.The Flywheel

The protocol's economics are designed to be self-reinforcing along three axes:

  1. Use ↑ Yield ↑. More mints, foundings and motions mean more Treasury inflow. Treasury inflow is split 50/30 to holders and Champion house members, who become richer in the asset they hold.
  2. Hold ↑ Rank ↑. Time-based promotion means holders mechanically reach higher yield tiers. Higher tiers earn more from the Treasury. Treasury yield gives holders more reason to hold.
  3. Compete ↑ Win ↑. The Champion mechanic gives houses a reason to recruit, found, and pact. Activity boosts honor score, honor score wins the Champion slot, the Champion slot delivers the largest single payout in the protocol.

Each loop on the flywheel removes SIGIL from circulation - through Treasury accumulation, through claim-and-hold behavior, through the burn slice. The supply that remains in circulation is ever more concentrated in wallets that have an active reason to hold.

IX.Liquidity Providers

Trading occurs on PancakeSwap V2. The SIGIL/BNB pair is a standard AMM pool with no custom logic intercepting swaps. LPs add and remove liquidity exactly as they would with any PancakeSwap V2 pair. The fee oracle is a read-only contract that does not touch the swap path.

The token contract carries no fee on transfer, no blacklist, no transfer restriction once trading is enabled. PancakeSwap Router calls move whole token amounts in and out without the surprises of fee-on-transfer accounting.

LPs collect the standard PancakeSwap V2 trading fee (0.25%) on every swap. The protocol Treasury is funded separately through flat SIGIL fees on mints, foundings and motions - not from swap fees. LPs and protocol Treasury are therefore funded by independent flows with no conflict of interest.

X.Risks

XI.Parameters at Genesis

ParameterValueEditable by
Total supply1,000,000 SIGILImmutable
Buy fee (default)10%Keeper, capped at 25%
Sell fee (default)10%Keeper, capped at 25%
Mint fee50 SIGILKeeper, timelock 72h
House founding fee200 SIGILKeeper, timelock 72h
Motion fee (fealty / pact / rivalry)5 SIGILKeeper, timelock 72h
Oracle base fee1.00% (10,000 pips)Oracle keeper
Oracle fee floor0.20% (2,000 pips)Oracle keeper
Per-rank discount0.10% (1,000 pips)Oracle keeper
House discount0.10% (1,000 pips)Oracle keeper
Promotion period30 daysKeeper
Epoch length7 daysImmutable
Holder share50%Immutable
Champion share30%Immutable
Burn share20%Immutable
Max SVG bytes4,096Keeper

XII.Deployment

The protocol ships in three Solidity files: Sigil.sol (a single bundle of Token, Registry, HouseBook, and Treasury for paste-into-Remix simplicity), SigilFeeOracle.sol (the standalone fee oracle), and PancakeInit.sol (a helper contract for adding initial SIGIL/BNB liquidity on PancakeSwap V2). Compiler is 0.8.26 with optimizer enabled at 200 runs. No external NPM dependencies are required; all interfaces are defined inline.

Order of operations

  1. Deploy SigilToken(1_000_000e18, deployerAddress). The full one-million supply lands in the deployer's wallet.
  2. Deploy SigilTreasury(deployerAddress, sigilTokenAddress).
  3. Deploy SigilRegistry(deployerAddress, sigilTokenAddress, treasuryAddress).
  4. Deploy HouseBook(deployerAddress, sigilTokenAddress, treasuryAddress).
  5. Wire dependencies: token.setTreasury(treasury), treasury.bind(registry, houseBook).
  6. Deploy SigilFeeOracle(registryAddress, houseBookAddress, keeperAddress).
  7. registry.setFeeOracle(oracleAddress).
  8. Deploy PancakeInit(sigilTokenAddress, deployerAddress).
  9. Transfer 80% of supply to PancakeInit, then call addLiquidity{value: X BNB}(tokenAmount) to create the SIGIL/BNB pair on PancakeSwap V2. LP tokens are sent to the deployer.
  10. Send 10% to the Treasury for the seed yield. 10% to a multisig for House grants.
  11. token.enableTrading(). Trading opens on PancakeSwap.

XIII.Closing

A heraldic banner has only ever meant one thing: that the bearer was known by sight and could be remembered through time. The chain happens to be uniquely suited to the same task. Sigil is the protocol that makes the old grammar into a market position, and the market position into a reason to stay.

The Book keeps what the chronicler forgets.