UI Override
Everything you need to know about Moral Hazard.
Moral Hazard is a game-theoretic streaming experiment built on Superfluid.
It's a playable version of the economics concept it's named after: every player hopes for a surplus that only the other players' decisions can deliver. Real economic consequences, designed in the open, powered by Superfluid's money streaming.
You take a side — Good or Bad — and your outcome plays out continuously, on-chain, in front of everyone.
Picking your side is framed by the question: “Do you think humans are, in general: Good or Bad?” — Good stands for stability, Bad for chaos.
Two sides compete:
The core tension:
Good holders want to hold their position long enough to break even from incoming streams. Bad streamers want frequent ownership changes, since they receive a distribution share every time someone new claims the Good Spot.
Here are the core concepts you'll encounter throughout this FAQ and the rest of the app:
Blockchain
A public, decentralized ledger that records every transaction. No single company controls it. Moral Hazard runs on EVM-compatible blockchains (Ethereum Virtual Machine) — a family of networks that all speak the same smart contract language. Examples include Ethereum, Base, Optimism, Polygon, and GnosisChain.
Wallet
Software that holds your private keys and lets you sign transactions. Think of it as your identity and bank account on the blockchain. Popular options include MetaMask (browser extension), Rainbow, and Coinbase Wallet. When a site says “connect your wallet,” it means linking your wallet so the app can read your address and request signatures — it cannot spend your tokens without your approval.
Tokens
Tokens are digital assets on a blockchain. Most follow the ERC-20 standard, which makes them interoperable across apps. Moral Hazard uses Super Tokens — a special wrapper provided by Superfluid that enables real-time streaming. You wrap regular tokens into Super Tokens before participating, and can unwrap them back at any time. Native Super Tokens don't require wrapping/unwrapping anymore.
Smart contract
A program deployed on the blockchain that runs automatically when called. Once deployed, the code is public and immutable — nobody (including the creator) can change the rules afterwards. Moral Hazard's entire game logic lives in smart contracts. The admin can adjust parameters, but the core rules are enforced by the contract itself.
Transactions & gas
Every action on the blockchain (claiming, starting a stream, etc.) is a transaction. Each transaction costs a small fee called “gas,” paid in the chain's native currency (e.g. ETH on Ethereum, or xDai on GnosisChain). Gas goes to the network validators, not to Moral Hazard.
Testnet vs. mainnet
A testnet is a practice blockchain where tokens have no real value — perfect for learning, building and testing. A mainnet is the real network where tokens have real monetary value. Moral Hazard offers a risk-free game on the Base Sepolia Testnet to get familiar with the core mechanics. (see how to participate).
NFT (Non-Fungible Token)
A unique, non-interchangeable token that proves ownership of something on-chain. Moral Hazard issues NFTs to mark your position in the game — a GoodNFT for the Good Spot holder and BadNFTs for streamers.
Block explorer
A website that lets you look up any transaction, address, or contract on the blockchain. Think of it as the blockchain's public search engine. Every action in Moral Hazard can be independently verified on a block explorer.
Superfluid is a protocol for real-time token streaming on EVM blockchains. Instead of sending tokens in one-off transactions, Superfluid enables continuous, per-second flows of tokens between addresses.
Moral Hazard uses two Superfluid primitives:
Superfluid streams require “Super Tokens” — wrapped versions of standard ERC-20 tokens that support streaming. You need these to participate. See how to get supported tokens.
A lot of blockchain apps re-implement something that already worked without one. Superfluid is one of the rare exceptions: continuous money streaming — value moving every second, by the second, with no per-payment transaction — is a primitive that is only really practical on-chain. It's a genuine case where the technology enables a capability that simply wasn't doable before, rather than dressing up an old one.
The hope is simple: by making streaming tangible and a little playful, Moral Hazard helps people internalize what streamable assets can do — and, ideally, inspires the next ideas built on the Superfluid protocol.
To participate you'll need:
Want to try risk-free?
Try it with fUSDCx (Super fUSDC Fake Token) on the Base Sepolia Testnet — for that token, a guide is in place that lets you mint free test tokens (and provides some ETH to pay for gas if you don't have any yet.)
The Good Spot is held by one player at a time. To claim it, you transfer the current asked amount. In return, you receive the aggregate stream of all Bad players flowing into the contract.
Bad streamers open a continuous token stream into the contract at a rate they choose. This stream flows to whoever currently holds the Good Spot (minus the 1.337% donation split).
When someone claims the Good Spot by transferring the asked amount:
Additionally:
The deposit does two jobs. It prevents self-dealing — without it, a player could open a Bad stream to themselves as the Good Spot holder, recycling their own tokens while accumulating pool units that dilute everyone else's share. And it prevents hit-and-run — streaming in briefly, catching a distribution, and leaving the people who stayed worse off.
How it works:
flowRate × duration × multiplierPrice decay prevents stalled games at unreachably high asked amounts (the “hot potato” problem). Decay is bound to the holder’s break-even progress: it kicks in the moment the current holder breaks even on what they transferred, then slides the asked amount back down toward the floor.
getEffectiveAskedAmount — no transactions needed. The thresholds are hardcoded in the contract (changeable only via a UUPS upgrade).1.337% of the total Bad stream flow rate is split off as a separate continuous stream flowing to a donation recipient. The Good Spot holder receives the remaining 98.663% of the aggregate Bad flow.
Donation recipients
USDCx on Base
SUP on Base
fUSDCx on Base Sepolia
Moral Hazard uses three types of NFTs, each with a dynamically generated SVG as its media file. Every SVG is rendered on-the-fly from live on-chain data — it is not a static image. Each time the SVG is loaded, it reflects the current state of the game or profile at that exact moment, including a snapshot timestamp in the footer.
All three SVG types include the animated Moral Hazard logo, an embedded custom font, and a PNG download button — when viewing the SVG directly in a browser, a small pill button lets you download a 1024×1024 PNG for sharing on platforms that don't support SVG files.
The on-chain tokenURI resolves to this live SVG, so wallets and NFT marketplaces render the NFTs directly from chain data — what shows in your wallet is generated from the same on-chain state, not a cached snapshot.
Example SVGs on Base Sepolia (live, may change with game state):
The Profile NFT is your personal identity in Moral Hazard — a single, free, soulbound NFT that remembers how you like to play. Instead of saving your settings in a browser that forgets them, your preferences live on-chain, tied to your wallet, so they travel with you to any device and any frontend.
What it stores for you:
Shareable settings & campaign limitations:
You can temporarily apply someone elses Profile NFT selections by entering the holders 0x address, ENS or the NFT Number - to check it out, or to mint those settings into your own profile NFT. If the applied profile NFTs holds a character-set that is not available anymore, you won't be able to copy it permanently.
Soulbound & self-updating.
It can't be transferred or sold — it's just you. You can update it any time, and like the other NFTs its image is generated live: open it and it draws your colour palette, your character, your address, and (if you choose to show them) your invite code and donation stats, with a one-click PNG download for sharing.
Why is it on Ethereum Mainnet and not on some cheap L2?
Ethereum Mainnet is where all L2 point to - and so does the Profile NFT. Since Moral Hazard has been built with multiple chains in mind from the start, it was the logic decision to place something that is not related to a specific chain on the Ethereum Mainnet. A positive side-effect is, that especially because Layer2 networks are much much cheaper, bots won't have any incentive to mint/update the Moral Hazard Profile NFT - which makes it easier for users to tell humans from bot apart.
Minting the Profile NFT is optional — you can play without one. It simply makes your experience portable and consistent everywhere.
Because whilst everyone falls in simple black or white terms like good and bad, sometimes we all are individual and unique.
When you mint or update your Profile NFT, you can add an optional ETH tip to support the project. It's entirely voluntary — any amount, or none at all — and it goes straight to the project wallet. Your total support is counted and can be shown as a little badge on your profile.
Where it goes:
For all donations, proper bookkeeping is in place — the market value at the time of each donation is recorded to ensure correct taxation.
Don't worry — it's not a mysterious new coin, and nothing was sent to you to claim. When you join the Bad side and connect to the distribution pool, Superfluid's pool shows up in some wallets and explorers as a “POOL” entry.
It simply represents your share of the distribution pool — your slice of every Good Spot claim, sized to your stream rate. It is not a tradeable asset and has no separate value of its own. Behind the scenes it's how Superfluid's General Distribution Agreement (GDA) pays every streamer their proportional amount in a single transaction.
Your share updates automatically as your flow rate changes, and goes to zero when you stop streaming.
On the Bad page and Profile page, you get a heads-up when a distribution happened — i.e. someone claimed the Good Spot and the pool paid out — with an estimate of your share.
How it works. Each claim emits an on-chain distribution event. We read those from the Superfluid subgraph and keep a small server-side record of them, then estimate each streamer's slice from the active stream rates at that moment. When you've seen a notification, dismissing it just records that you've read up to that point.
Fair question, and an expected one — it's usually an early one that comes up. That's exactly why so much attention goes into how things are worded here: no “win,” no “odds,” no “returns,” no manufactured excitement. Not because those words are forbidden, but because they'd describe something this isn't.
For context: blockchain is a niche, real-time streaming inside it is a niche of that niche, and Moral Hazard is a niche of that one. What it's built around is an economics concept — moral hazard: acting in the hope that a positive outcome will be carried by someone else. This is that concept made playable: a small social-economic experiment you can participate in rather than read about.
Why someone could reasonably think otherwise
It's not a silly suspicion, so let's say it plainly: you put value in, you can come out with more or with less, and other people decide which. Nothing new enters the system — whatever one participant gains, another streamed in. And the Good Spot holder's run ends when someone claims the spot away, at a moment they don't choose.
What's actually different
It's closer to a market than to a wager. A bettor sits outside the event and can only watch it happen — here you're inside it, and your own stream is part of what everyone else is reading and reacting to. You also keep acting: change your flow rate, close it, hand your position on. A placed bet allows none of that.
Where that comparison stops: a share is a claim on a company that actually earns — this has no productive underlying of its own. That is exactly why it's a game and never an investment, and why nothing here is a financial product. The resemblance is structural, not an equivalence.
And the lengths gone to keep it that way
Risks appear before the buttons, not in fine print. A complete first game is free with testnet tokens (fUSDCx on Base Sepolia). Every admin change routes through a TimelockController — and you don't have to go looking for it, because a warning appears in the app the moment something is queued, leaving you the whole delay window to exit. And there's no leverage, no credit, no bonuses, no “one more round” prompt anywhere.
So: not a game of chance. The closest honest description is speculation inside a transparent micro-economy — a small system where the rules are visible, the numbers are live, and the outcome comes from people deciding in the open.
What we won't pretend: outcomes are genuinely uncertain because they depend on what others do, and you can end up with less than you put in — the Good and Bad risk sections spell out how. The admin isn't powerless either — but nothing changes silently or instantly (see what the admin can change). And no formal legal classification has been obtained; professional review is planned. If any of that unsettles you, the free testnet game is the right place for you.
No. Moral Hazard is an experimental on-chain game. It is not a financial service, investment product, or regulated instrument. Nothing on this site constitutes financial, investment, tax, or legal advice.
Participating on a mainnet, with tokens that have real value, carries a real risk of loss. Understand the mechanics before you start and never use funds you cannot afford to lose — the risks are listed in full for the Good side and the Bad side.
A related but separate question is whether this is gambling — the short answer is no, and the reasoning there is worth reading rather than taking on trust. And if you'd rather learn the mechanics before anything is at risk, a complete first game is free with testnet tokens (fUSDCx) on Base Sepolia.
Moral Hazard collects minimal data. There are no accounts, no registration, and no personal information required to participate. The full detail is in the privacy policy; the summary:
Let's lay the cards on the table. The core game contracts are upgradeable (UUPS proxy pattern). That single fact matters more than any individual setting: by deploying a new implementation, the admin could in principle change almost any rule of the game. Very little is genuinely carved in stone — so what actually protects you isn't immutability, it's the process every change has to pass through (more on that below).
So the honest split isn't “changeable vs. immutable” — it's how much effort and visibility a change takes: a quick configuration tweak, or a full contract upgrade.
Configurable (no upgrade needed)
Normal operating knobs — adjusted through the timelock.
Requires a contract upgrade (UUPS)
Technically changeable, but only by shipping new implementation code — which itself goes through the timelock. A few values are fixed when a game is deployed (its accepted token, floor amount, and bound NFT contracts) and would need a brand-new game deployment to change.
Where the trust actually comes from.
Because upgrades are this powerful, your protection is procedural — not an empty “it can't be changed” promise:
In short: the fee and core rules are a commitment, enforced by a transparent, time-delayed process and a separate veto key — not by a claim that change is impossible. See security measures and the TimelockController for the full picture.
Note: the contracts have not had a formal third-party security audit by a professional audit firm. What review they have had is set out in Have the contracts been audited?
Not by a professional audit firm — no. That is the one form of assurance still missing, and nothing below is a substitute for it. If that alone is your threshold, it is a fair reason to wait.
What the contracts have had instead is repeated, structured security review:
Findings from each pass were addressed — most fixed, a few deliberately accepted and written down as accepted rather than quietly dropped. The reviews did find real problems; that is what they are for. What they are not is a firm's signature.
So why no audit yet? A proper one costs more than this project has. There is no investor money behind it, which leaves the obvious circle: an audit needs funding, funding needs usage, usage arrives before the audit can be paid for. So it is not promised against a launch date that could slip — it is simply the first thing the project spends on once it earns enough to pay for it. An unused app does not need an expensive audit; a used one deserves nothing less.
Until then the honest summary is: verified and open-source, reviewed repeatedly and seriously, and still carrying the risk that review is not assurance. Read the risks before you decide.
The TimelockController is an OpenZeppelin governance contract that wraps all admin actions with a mandatory time delay. Any change the admin wants to make must be proposed first, then waits for the delay period before it can be executed.
acceptOwnership. Ownership can never be moved to a wrong or uncontrolled address by a single mistaken transaction.This ensures users always have time to review proposed changes and exit their positions if they disagree, before any change takes effect — and you don't have to go looking for them: a pending-change warning appears right on the affected game's pages. See what the admin can change for the full list of timelocked parameters.
Safe vs. EOA workflow:
The admin is generally a Gnosis Safe multisig, which works well for routine operations like adding a donation option. However, deploying new contracts or major upgrades (e.g. integrating a new token or chain) involves gas-heavy multi-step transactions that exceed the Safe's execution limits. For these tasks, the admin temporarily grants the proposer role to a single deployer wallet (EOA). Since this role switch itself goes through the timelock, users get an extra 48-hour notice period before the deployer can act — and any changes the deployer then proposes take another 48 hours to take effect. Once the deployment is complete, the deployer renounces the role and the admin switches back to the Safe for day-to-day security.
When the admin schedules any change through the TimelockController, it does not take effect right away — it waits out the delay (48h mainnet / 20min testnet). During that window you get a visible heads-up on the affected game's pages.
This is the practical version of “watch it coming.” If you disagree with a queued change, you have the full delay window to exit your position before it executes.
Pausing freezes new activity — no one can claim the Good Spot, open a new Bad stream, or update an existing stream rate. However, all existing Superfluid streams continue flowing in real-time. The pause does not stop or delete any CFA agreements.
This means during a pause:
Emergency exit is optional, not automatic. Each user can choose to call the emergency exit function:
If nobody exits, the game resumes exactly as it was after unpause — same Good holder, same Bad streamers, same flow rates. If only some participants exit, the remaining positions continue normally. The Good Spot only resets to the floor amount if the holder emergency-exits.
The backup Gnosis Safe multisig can pause instantly via its CANCELLER_ROLE (no timelock delay), but unpause requires going through the TimelockController. See when the admin would pause for the circumstances under which this would happen.
Pause is a last-resort safety mechanism. It would only be used in situations where continuing normal operation could put users' funds at risk:
The admin would NOT pause for:
How likely is a pause?
The admin has no financial incentive to pause — it disrupts protocol fee income and blocks new claims, reducing activity. Pause exists purely to protect users' funds in a genuine emergency. The contracts are designed so that normal operation requires zero admin intervention.
Impact on the Good Spot holder:
If you hold the Good Spot when a pause occurs, nothing changes automatically. All existing Superfluid streams continue flowing — Bad streamers keep streaming into the contract, and you keep receiving those streams in real-time. You may call emergency exit if you choose to, which burns your GoodNFT and vacates the spot. But if you don't exit, and the game is later unpaused, you continue holding the Good Spot exactly as before. The spot only resets to the floor amount if you voluntarily emergency-exit. See what happens when paused for full details and Good Spot risks for the full picture.
Moral Hazard uses Superfluid “Super Tokens” — wrapped versions of standard tokens that support real-time streaming.
For example, USDCx is the Super Token version of USDC. There are also native Super Tokens, that don't require wrapping anymore (like "SUP" or "FRACTION").
How to get wrapped Super Tokens:
How to get native Super Tokens:
For cross-chain swaps, you can use LI.FI Jumper Exchange to bridge and swap tokens directly to the target chain. Check your current balances on the Profile page.
When trying first on the Testnet:
You can mint & wrap during the Testrun-Guide on fUSDCx/Base Sepolia to get free test tokens.
The Voting page lets you suggest and vote for tokens to be integrated into Moral Hazard next.
Each player gets a visual invite code (a little sequence of animals) to bring others in. The thinking behind it is simple: only people who actually use the project should be able to invite others — so you earn invites by participating, you don't just get a stack up front.
How you earn invites.
While you're actively participating — holding the Good Spot or running one or more Bad streams — your participation score ticks up over time (it grows faster the more you have running, and keeps accruing when you stay active). Each time it crosses the next threshold, another invite unlocks for you to hand out. Trying the free testnet run on Base Sepolia counts too, so you can start earning invites completely risk-free.
Won't the codes run out?
Each code is four animals drawn from a set of eight — plenty to begin with, but not endless. So the pool grows in seasons: when one season fills up, a fresh set of eight animals opens the next batch, then the two sets combine. Once that pool is full, a set of 32 animals gets used - enabling over a million possible codes in all - and the invite system deactivates. You keep your invite combination, but at that point the codes are not used for inviting anymore, but become a personal badge (still shows up in the app and on your Profile NFT).
If you mint a Profile NFT, you can choose whether to show your invite code on its generated image — it's an optional toggle (off by default), in case you'd rather keep it private.
Important to understand:
Your invite code and participation score are not stored on-chain. They live in the project's own database, off-chain.
All contracts are source-code verified on each networks blockexplorer. Click any address to view the verified source code directly on the block explorer.
Base
Factory: 0x9dee274794f2cdcd0de368c16d61c9cbafbea2b2
USDCx
SUP
Base Sepolia
Factory: 0x0A86Af8b166B13D34DAE516612e3d294A0e1786E
fUSDCx
Source code verified on Basescan. Proxy contracts link to their verified implementation via EIP-1967.
Moral Hazard streams Superfluid Super Tokens, so a plain ERC-20 first needs a Super Token wrapper — e.g. MYTOKEN → MYTOKENx. The good news: this is a standard, permissionless Superfluid step, not something specific to us.
upgrade (wrap) and downgrade (unwrap) 1:1 between MYTOKEN and MYTOKENx.You can create and manage wrappers from the Superfluid Dashboard / Console — see the Superfluid docs for the exact steps and supported chains.
Once a Super Token exists, getting it into Moral Hazard is straightforward: gather support on the Voting page so it surfaces as a wanted integration, and/or reach out to discuss it directly.
Yes! Collaborations are welcome — the easiest start is to schedule a meeting via the button at the bottom of this page. A collaboration can range from a one-off character campaign to a deeper partnership around an integrated token, so there's room to figure out the right shape together.
Needed for a campaign:
Character guidelines:
To make this easy, we provide a reference package (.zip, with the default characters and templates) and the brand kit (.zip) to work from.
You don't need finished art to talk — a draft is fine for scheduling. And if you can only provide photos or pixel graphics, we'll find a way to vectorize them for integration.
Classic one.
But seriously, if you want to then go for it! Every contract is verified and public, so you can read all game state and interact without our frontend. Here's everything you need.
Start with AGENTS.md — a machine-readable playbook generated live from the game registry: state reads (subgraph + RPC), the formulas, and every player interaction, written for autonomous agents and builders alike. Everything below is the human-readable version of the same surface.
Data sources (no API keys required)
https://subgraph-endpoints.superfluid.dev/<network>/protocol-v1<network> is e.g. base-mainnet, optimism-mainnet, base-sepolia.GET /AGENTS.md — the generated agent playbook; addresses come from the live game registry, so they never drift (public games only).Read directly on-chain (view functions)
currentGoodHolder, askedAmount, getEffectiveAskedAmount, totalBadFlowRate, badStreamerCount, lastClaimTimestamp, lastPaidAmount, pendingDistribution, badPool, acceptedToken, receivedAccumulator, receivedUpdatedAt, phase3StartedAtcurrentTokenIdgetDepositInfo, depositDuration, depositMultipliergetOptions, getActiveRecipientCFAv1Forwarder.getFlowInfo, pool getUnits / getTotalAmountReceivedByMemberValues the app computes itself
received = receivedAccumulator + holderRate × (now − receivedUpdatedAt) (all public reads, flash-proof): below paid → asked (no decay); between paid and 1.337·paid → linear from asked down to 1.009·paid; beyond that → 1.009·paid − paid × daysSince(phase3StartedAt) / 1000, floored. (Or just read getEffectiveAskedAmount.)received as above; % = received × 100 / lastPaidAmount.yourUnits × 100 / totalUnits (units = flow rate).flowRate × depositDuration × depositMultiplier; plus a Superfluid buffer of flowRate × 14400 (4-hour liquidation period).wei/sec × secondsPerUnit (day = 86400, week = 604800, month = 2630016).Player interactions (everything a non-admin can do)
approve (ERC-20 on the accepted Super Token)claimGoodSpot and changeDonationRecipient (MoralHazard)CFAv1Forwarder.setFlowrateGDAv1Forwarder.connectPool (to receive distributions) and DepositManager.claimDepositmint / updateupgrade / downgrade (or upgradeByETH / downgradeToETH for native Super Tokens)Note: voting and the invite system run on a project database, not on-chain, so they aren't part of this list. Super Token transfers use ERC-777 hooks — budget extra gas accordingly.
In economics, a “moral hazard” describes acting in the hope that a positive outcome will be carried by someone else. The name reflects the game's core dynamic: every player hopes their choice produces a surplus — but whether it does depends not on their own strategy alone, but on the behavior of all other participants.
The “Good” and “Bad” naming comes from the side-picking question: “Do you think humans are, in general: Good or Bad?”
The Good side plays for stability and trust (holding the spot, receiving streams). The Bad side plays for change and disruption (streaming now, counting on frequent turnovers). Neither side is inherently better — they represent different strategic outlooks.
It's a reference to long gone days. Carrying CRT monitors to a gym hall in summer days. But 1337 still remains as a little easter egg.
Beyond the insider-joke, it's deliberately used across the project when setting constants. A 1.337 reference on the project fee, the donation stream, or phase 2 price decay. One memorable number, applied consistently.
Because the whole point is that you can make an informed decision. The approach throughout is transparency and upfront communication: show you enough to understand exactly what you're getting into, while keeping the path to actually participate as smooth as possible.
Treat all those figures as a neutral view on the statistics — current state, risks, break-even, decay — never a suggestion or promise of future gains. The warnings exist for the same reason: so nothing about the mechanics is hidden behind a friendly button.
There was also no rush to ship (a good chunk of the wait was just the grace period on moralhazard.eth ending ^^), which left plenty of time to reiterate and finetune. In the end it's simply built the way I, as a user, would want it — doing the best with the resources at hand.
Me! *raises hand* ^^
I'm Markus B., going by the online alias "seliqui" (X / Lens) and I built Moral Hazard.
I also run seliqui e.U., an Austrian sole-proprietorship licensed for Advertising, Media-Design, and IT-Services.
My professional experience spans over +22 years of Media-Design, Web Development and Frontend Designs - spanning from classic webdesign, to 2D/3D animations (AfterEffects/Cinema4D), to niche areas like WebVR/XR projects in the Virtual Reality space (primarily web based using aframe.io).
My blockchain experience includes being a founding member of the lab10 Collective e.G. in Austria, being part of the core team on the Minerva Wallet, building the FRACTION token (second ever native SuperToken) as a side-project in my spare time and in regards to Superfluid, I operated Superfluid Sentinels and became a Superfluid DAO Delegate.
The project's blockchain contracts are open-source — all smart contracts are verified on block explorers, and anyone can interact with them directly or build their own interface instead of using the provided one.
Rights, licences and attributions — who owns what, third-party logos and trademarks, the invite-animal icons and the typeface licence — all live in the imprint, alongside the privacy policy and the draft terms. And if you're wondering about the tooling: yes, AI was involved.
seliqui is not responsible for any losses that occur by participating — make sure you are aware of the risks and the overall game mechanics!
Yes — and the honest version is more interesting than either extreme you might be picturing. An AI coding agent is part of my toolchain, the way an IDE or a build system is, and some commits are co-authored with it. Superfluid publishes an official skill for exactly this, so the agent works from verified contract interfaces instead of guessing from stale training data.
What it did not do is decide anything. Every design decision, every economic mechanic, every trade-off and everything rejected along the way came from me. The tooling wrote code under direction; it never decided what the game should be.
And it is nowhere near “type a prompt, get a game”. These tools are a real help, and they also get things subtly wrong — so most of the work is everything around the generating: planning what should exist, reading back what actually came out, testing it, finding the places where the implementation quietly drifted from the intent, and going round again. Anything touching the contracts gets that treatment several times over. Price decay was reworked three times before it behaved the way it was supposed to, and the contracts went through a dedicated audit pass and a full test suite afterwards — which is also why the “not yet formally audited” caveat is still sitting there honestly instead of being quietly dropped.
It runs both ways, too: this project serves its own AGENTS.md — a playbook generated from the live game registry so an autonomous agent can play the game directly against the verified contracts, without this interface. Machine-readable is a design goal here, not an afterthought.
I mention all this because the Handbook asks you to trust a lot of statements about how things work, and it would be odd to be straight with you about the fee, the admin powers and the audit status while being coy about the tooling.
There are currently no concrete plans for a dedicated Moral Hazard token. The idea has been explored conceptually but is 'parked' at best, as there is currently no clear need/use case for a dedicated token. Any token launch would require thorough regulatory review given the legal landscape for crypto-assets. The game functions entirely with existing Superfluid Super Tokens.
A rough sense of direction (not promises — priorities shift):
If you need to do any graphical work related to Moral Hazard, check out the approved Design Manual and download the Brand Kit .zip file for assets you might need.
Straight answer: there is no finalised Terms & Conditions document yet — and saying “it's coming before mainnet” would be a promise this item has already outlived. So instead of nothing, the working draft is published as it stands: read the draft terms. It is marked as a draft on every screen, because that is what it is.
Why it isn't final. Two honest reasons. The operating entity structure is still being settled, and the document has not been through professional legal review. A polished-looking T&C that names the wrong party — or that nobody qualified has checked — would be worse than telling you where things actually stand.
What already applies, today. The draft doesn't create your protections. These are live right now, with or without it:
What is genuinely unsettled: governing law and jurisdiction, which entity is the operator of record, and geographic restrictions. The privacy policy and imprint are not in that list — those are published and in force, because what they say is factual and doesn't depend on the entity question. If you spot something wrong or missing in the draft, say so — that is a large part of why it's published early.
Something to discuss in person?
Schedule a MeetingPlease refrain from scheduling meetings for:
"Community Mod Position", "Paid Promotions / Giveaways", "Social Media Manager", and so on.
Don't waste each others time :)