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.
¶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
- Single-token settlement. One ERC-20, one PancakeSwap V2 liquidity pool, one fee oracle. No bridging, no wrappers, no separate staking token.
- Adjustable buy/sell fee. The token charges an adjustable fee (default 10% buy, 10% sell, capped at 25%) on PancakeSwap trades that funds the marketing wallet. Wallet-to-wallet transfers are fee-free.
- On-chain art. Every sigil is an SVG written into contract storage at mint time. There is no IPFS pin, no CDN, no link to break. BNB Smart Chain's low gas costs make on-chain SVG practical.
- Permissionless distribution. Anyone can finalize a weekly distribution. The keeper does not sit between the Treasury and the holders.
- Bounded ranks. Five ranks from Esquire to Ducal. Each adds a fixed yield weight. No infinite stacking. No infinite gas.
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
| Holdings | Yield weight | Effective tier |
|---|---|---|
| No sigil | 0 | No yield |
| Esquire (rank 0) | 1x | Base 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 member | bonus | - |
| + Champion house | 30% share | Top 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.
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.
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.
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:
| Slice | Share | Recipient |
|---|---|---|
| Holder yield | 50% | NFT holders, weighted by rank (1, 2, 3, 4, 5, 6 for ranks 0-5) |
| Champion bonus | 30% | Members of the previous epoch's Champion house, split equally |
| Burn | 20% | 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.
| Allocation | Supply | Custody & 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 seed | 10% | Funds the first 12 weeks of yield while organic fee flow ramps. Streams to SigilTreasury on a 90-day vest. |
| House grants | 10% | 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:
- 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.
- 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.
- 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
- Distribution gas budget. The off-chain finalizer must size its batch to fit the block gas limit. On BNB Smart Chain, this is generous - the 140M gas limit allows large distributions in a single transaction. For very large holder sets, distributions may need to be paginated.
- Champion election trust. The keeper finalises the weekly champion based on the on-chain honor scores. The selection is therefore deterministic and auditable, but the call is keeper-gated to prevent a frontrun in which a house bumps its score in the final block. Future versions move this on-chain via a cumulative-score view that any wallet can call.
- SVG storage cost. BNB Smart Chain gas makes 4 KiB of on-chain SVG materially cheap compared to other networks. The cap is configurable and can be raised if gas economics permit.
- Aesthetic capture. Popular charges and tinctures will become commonplace as the Register grows. Sigil offers no contract-level remedy; the historical record itself disciplines later imitations through documentable priority.
- No legal recognition. Sigil makes no claim of peerage, nobility, or grant recognised by any state heraldic authority. The protocol is a curio.
XI.Parameters at Genesis
| Parameter | Value | Editable by |
|---|---|---|
| Total supply | 1,000,000 SIGIL | Immutable |
| Buy fee (default) | 10% | Keeper, capped at 25% |
| Sell fee (default) | 10% | Keeper, capped at 25% |
| Mint fee | 50 SIGIL | Keeper, timelock 72h |
| House founding fee | 200 SIGIL | Keeper, timelock 72h |
| Motion fee (fealty / pact / rivalry) | 5 SIGIL | Keeper, timelock 72h |
| Oracle base fee | 1.00% (10,000 pips) | Oracle keeper |
| Oracle fee floor | 0.20% (2,000 pips) | Oracle keeper |
| Per-rank discount | 0.10% (1,000 pips) | Oracle keeper |
| House discount | 0.10% (1,000 pips) | Oracle keeper |
| Promotion period | 30 days | Keeper |
| Epoch length | 7 days | Immutable |
| Holder share | 50% | Immutable |
| Champion share | 30% | Immutable |
| Burn share | 20% | Immutable |
| Max SVG bytes | 4,096 | Keeper |
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
- Deploy
SigilToken(1_000_000e18, deployerAddress). The full one-million supply lands in the deployer's wallet. - Deploy
SigilTreasury(deployerAddress, sigilTokenAddress). - Deploy
SigilRegistry(deployerAddress, sigilTokenAddress, treasuryAddress). - Deploy
HouseBook(deployerAddress, sigilTokenAddress, treasuryAddress). - Wire dependencies:
token.setTreasury(treasury),treasury.bind(registry, houseBook). - Deploy
SigilFeeOracle(registryAddress, houseBookAddress, keeperAddress). registry.setFeeOracle(oracleAddress).- Deploy
PancakeInit(sigilTokenAddress, deployerAddress). - Transfer 80% of supply to
PancakeInit, then calladdLiquidity{value: X BNB}(tokenAmount)to create the SIGIL/BNB pair on PancakeSwap V2. LP tokens are sent to the deployer. - Send 10% to the Treasury for the seed yield. 10% to a multisig for House grants.
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.