Saylors docs
Everything the protocol does, including the parts that require trust. If a claim here ever disagrees with the deployed contracts, the contracts win.
Overview
Saylors is a 690 piece NFT collection of laser-eyed, orange-pilled pixel-art Saylors on Robinhood Chain wired to a rewards engine. The loop in one paragraph: the $SAYLOR token trades on its launchpad and generates creator fees; that fee stream is forwarded to the engine as ETH; every 69 minutes the engine splits the arriving pot across every awake Saylor in proportion to its weight; the engine then buys each Saylor's chosen payout assets (MSTR today, with cbBTC queued) and banks them in a vault keyed by token id; the holder claims for free whenever they like, or never, because selling is for other people.
Three contracts run this:
Saylors- the ERC-721. Minting, activation, tiers, royalties. Holds no user funds.RewardsEngine- the accountant. Receives fee ETH, settles rounds every 69 minutes, swaps into assets, credits the vault.SaylorVault- the bank inside the NFT. Balances keyed by token id, claimable only by the token's current owner, with no fees and no admin path to the assets.
The collection
Minting
Flat price of 0.0069 ETH per Saylor, up to 5 per transaction, 690 ever. Mint ETH forwards straight to the treasury; the NFT contract never holds it. Contracts cannot mint (wallets only), which matters for fairness, below.
The fair draw
Each mint draws its artwork from the pool of unclaimed pieces with an on-chain Fisher-Yates shuffle. The random seed includes the previous block's hash, which did not exist when the buyer signed, so neither buyers nor the deployer can steer an assignment. Blocking contract callers stops the classic trick of wrapping the mint in a contract and reverting unless a rare piece was drawn.
Sealed until reveal
Every token shows the same sealed card until the collection mints out, then the entire set opens at once. Assignments exist on chain from the moment of mint; reveal only controls readability. If the mint stalls, anyone can trigger the reveal 30 days after minting opened, so a lost deployer key can never leave holders sealed forever. Metadata cannot be repointed once minting opens.
Rarity and royalties
Every piece is a 1024x1024 pixel-art portrait with a Rarity Rank from 1 to 690 baked into its metadata, grouped into three tiers: 450 Commons (ranks 1 to 450), 180 Rares (ranks 451 to 630) and 60 Legendaries (ranks 631 to 690). Traits run across Hair, Jacket, Expression, Eyes and Background, so a Blood Mohawk over a Crash Zone reads very differently to a Gold Standard over an Orange Pill. Ranks are fixed before mint and dealt by the same sealed draw with the same odds for everyone; nobody can aim for a Legendary. Resales pay a 5% royalty to the treasury under ERC-2981, on marketplaces that honour it.
$SAYLOR and the fee stream
The $SAYLOR token is not minted by these contracts. It launches separately and its trading fees are the protocol's only revenue source. $SAYLOR is paired against MSTR, so creator fees arrive as MSTR; the forwarder sells them for ETH, because the engine only ingests ETH, and the engine then buys MSTR back for holders. That round trip crosses the MSTR pool twice and costs roughly 2% plus slippage, which is the price of the pairing. Both legs are guarded by the same 30 minute TWAP, so a bad price makes a swap skip rather than execute. A share of every claim is retained by the team to fund the keeper gas, the servers and development.
Say it plainly: that forwarding is done by the team off chain. No contract forces it. This is the protocol's largest trust point and it is listed again under Trust points.
Inside the protocol $SAYLOR has exactly one direction: the fire. Waking a Saylor burns 69,000, and tier upgrades burn up to 2,100,000 cumulative per Saylor. Every burn is a transfer to the dead address and is permanent. Supply only shrinks. Holding $SAYLOR is never required to mint.
Waking and sleep
A freshly minted Saylor is asleep and earns nothing. Burning 69,000 $SAYLOR wakes it. The first activation also sets the tier base (Tier I).
Any transfer, sale or otherwise, puts the Saylor back to sleep. The new owner burns 69,000 $SAYLOR to wake it again; this re-activation is an entry fee only and never changes the tier. Nobody else can put a Saylor to sleep: not the team, not the engine, only a transfer.
To stop boundary sniping, a Saylor that wakes mid-round starts earning from the next round. See 69 minute rounds.
Tiers and weight
A Saylor's earning weight is set by the cumulative $SAYLOR burned into it:
| Tier | Cumulative burn | Weight |
|---|---|---|
| I | 69,000 | 1.0x |
| II | 210,000 | 1.4x |
| III | 420,000 | 1.9x |
| IV | 690,000 | 2.5x |
| V | 2,100,000 | 3.5x |
Upgrades are cumulative, so moving from Tier I to Tier III burns 351,000 (the difference), not 420,000. There are no refunds and no downgrades. The tier belongs to the token forever: it survives every sale and every sleep. A tier upgrade on an already awake Saylor applies immediately; the burn costs far more than one round's marginal yield, so there is nothing to snipe.
69 minute rounds
Rounds follow the contract clock: one round every 4140 seconds (69 minutes), with the round number equal to the timestamp divided by 4140. Fee ETH arriving during round N buffers into the pot and pays the Saylors that were awake through round N. When the round ticks over, the pot spreads across total awake weight through a global accumulator, which makes settling O(1) no matter how many Saylors are awake.
Anti-snipe rule: a Saylor entering the pool starts earning from the next round, never the current one. Weight decreases and sleeps apply immediately.
Two paths keep the engine's view of every Saylor honest:
- Hooks. The NFT pushes activations, sleeps and weight changes to the engine the moment they happen. Hooks are fire-and-forget: if the engine ever reverts, the NFT action still succeeds. A broken engine must never brick anyone's token.
- Sync. Anyone can call a permissionless sync that copies the truth straight from the NFT. Callers pay gas but cannot influence the numbers, so a missed hook is only ever a delay.
Delivery and the TWAP guard
Delivery turns a Saylor's accumulated ETH credit into its chosen assets. A keeper calls it each round, but the call is permissionless: anyone can deliver.
- Each Saylor's credit splits across its chosen assets by its saved percentages. A holder may pick up to 3 assets with percentages totaling exactly 100%. Never picked? The whole credit goes to asset 0, which is MSTR.
- Only one asset is registered in the engine today: MSTR (idx 0, 18 decimals), Strategy stock tokenized on Robinhood Chain, at
0xec262a75e413fAfD0dF80480274532C79D42da09. It has a real Uniswap V3 WETH 1% pool with a working 30 minute TWAP, so it is bought from the very first round. With one asset registered, every split is effectively all-MSTR until a second asset comes online. - cbBTC (Coinbase Wrapped BTC, 8 decimals) at
0xCEC185eB182c47d1bA1EFc84e6959e18cd620Be4is how Bitcoin is represented on this chain. It is not registered at launch and cannot be selected as a payout yet. Its deep liquidity lives in Uniswap V4 hook pools the engine cannot trade through, and every Uniswap V3 cbBTC pool on this chain is currently empty. Registering an asset in the engine is permanent, with no way to remove it, so cbBTC is deliberately held back until that V3 pool has real depth. At that point the team runs a single one-line transaction (AddCbBTC) to switch it on as idx 1. No redeploy, and no date is being promised. - The engine pools all Saylors' demand per asset and makes one swap per asset, then shares the output pro rata. Fewer swaps, less slippage, same fairness.
- Every swap is guarded by a TWAP price check with a capped slippage tolerance. If the live price strays too far from the time-weighted average, the swap reverts and is skipped, so a manipulated pool cannot drain a pot.
- MSTR buys route through its Uniswap V3 WETH pool. If that pool's price history is briefly too thin for the TWAP check to verify, that round's MSTR share simply rolls into a later delivery as ETH credit. Nothing is lost.
- A skipped or failed swap hands the ETH straight back as credit. It rides into a later delivery. Nothing is lost, and one bad asset can never cost another asset's holders their round.
- Dust rule: an asset pot below the minimum swap size waits for a later round instead of wasting gas on a micro swap.
- If a payout cannot land (for example a token transfer that a recipient contract rejects), the amount is recorded as owed to the token id and stays claimable forever.
Collect mode
Each Saylor chooses where delivery lands: the vault (default) or straight to the owner's wallet. Vault mode is what makes a loaded Saylor sell loaded; wallet mode is for holders who want assets in hand every round. Switch any time.
The vault
The vault is a bank whose accounts are token ids, not addresses. When the engine delivers in vault mode, the bought assets transfer into the vault and are credited to the Saylor. Sell the Saylor and the balance goes with it; the buyer claims what the token holds.
Hard rules, fixed at deploy:
- Only the engine can credit, and only during delivery. The ledger moves together with the real tokens.
- Only the current owner of a token can withdraw that token's assets, and they can only ever go to that owner.
- There is no fee and no parameter to add one.
- There is no admin path to the assets. The engine can credit; it can never withdraw.
Claiming
Direct
The owner calls claim and every asset the token holds transfers out to them. A single-asset claim exists too. Cost: network gas only.
Gasless
The owner signs a 32 byte message (a hash of the vault address, the chain id, the token id and a per-token nonce) with a normal personal_sign. The keeper submits the signature and pays the gas. The vault checks the signature recovers to the token's current owner and pays only that owner; the keeper can never redirect a claim, only fund it. The nonce bumps on every use, so a signature cannot be replayed, and the chain id in the hash stops replays across chains.
Trust points
This section exists so nobody has to discover these in the code. Saylors is not trustless end to end. Here is exactly where trust sits.
What you must trust
- The fee stream is an off-chain commitment. The forwarding of $SAYLOR creator fees to the engine is performed by the team. No contract enforces it. If the team stops forwarding, earnings stop.
- The engine owner can rescue funds held by the engine.
rescueEthandrescueTokencan sweep whatever sits in the engine, including a pot that has not yet been delivered. This exists because a fee-swap protocol before this one locked its engine's ETH forever with no escape hatch; the same valve that prevents that is also a power you are trusting the owner not to abuse. Assets already delivered into the vault are out of its reach. - Engine parameters. The engine owner registers payout assets and their pools, and can tune the minimum swap size and the slippage tolerance (capped in code). Registering an asset is permanent: there is no removal path. A hostile owner could add a bad asset or route; a lazy one could leave a broken route in place. This is exactly why cbBTC is not registered yet, and why the only way it gets added is once its pool can actually be traded against.
- Keeper liveness. Per-round delivery and gasless claims rely on a keeper being run. Delivery itself is permissionless, so anyone can step in, but someone has to. If nobody calls, credit accrues safely and waits.
- Off-chain services. Artwork files, metadata and the gasless relay are web infrastructure. If they go down, on-chain state is untouched but the site experience degrades.
What you do not have to trust
- Nobody can put your Saylor to sleep, change its tier, or block a transfer.
- Nobody can withdraw from the vault except the token's current owner, and nobody can add a vault fee.
- Nobody can un-burn $SAYLOR or mint beyond 690.
- Before the mint opens the deployer wires the token and engine addresses once each (
setSaylorTokenand friends); those wirings are one-shot. The deployer can also renounce every remaining power permanently. - A broken engine cannot brick the NFT: every hook is fire-and-forget and a permissionless sync repairs any missed update.
Contracts
Addresses appear here once deployed. Until then this table reads "not deployed yet".
| Contract | Address |
|---|---|
| Saylors (NFT) | not deployed yet |
| RewardsEngine | not deployed yet |
| SaylorVault | not deployed yet |
| $SAYLOR token | not deployed yet |
Chain: Robinhood Chain (id 4663). Explorer: Blockscout.
Risks
- Volume risk. Every reward comes from $SAYLOR trading fees. No trading, no rewards. Volume on new tokens usually decays.
- Asset risk. MSTR is a tokenized stock, not stock ownership. Its price tracking depends on the issuer and market depth, and it can fail. It is also the only payout asset registered today, so there is nothing to diversify into inside the engine yet: everything you earn rides one asset. When cbBTC comes online it is Bitcoin, which is volatile by nature and can draw down hard.
- Smart contract risk. Bugs happen, even in carefully written and tested code. Do not stake more than you can lose, however many kidneys you have left.
- Trust risk. The points listed above are real powers held by real people.
- Liquidity risk. NFTs are illiquid. $SAYLOR burned into a Saylor cannot be taken back out; it is only ever reflected, maybe, in the Saylor's resale price.
- Regulatory risk. Tokenized equities and NFT reward schemes sit in an evolving legal space. Rules can change under this protocol.
None of this page is financial advice. It is a description of a machine, including its sharp edges. Parody. Not affiliated with Michael Saylor or Strategy.