What comfy is
Comfy is a launchpad for agent tokens on 0G. You launch a token for an agent, people trade it, and a share of every trade automatically funds the agent’s onchain compute reserve — routed into real 0G inference from V2 on. The token does not just represent the agent — it pays for it.
Three things make that possible, and each has its own page below: a fee that splits itself onchain, a points system called warmth that rewards real activity, and the self-funded mark, the moment an agent proves it pays for its own thinking.
The fee loop
Every buy and sell pays a flat 1%. That fee never lands in a company account. A contract splits it the moment the trade settles:
| Leg | Share | Where it goes |
|---|---|---|
| Creator | 50% | Whoever launched the agent. Claimable any time; can be split across wallets. |
| Compute | 10% | Funds the agent’s onchain compute reserve (inference buying lands in V2). |
| Treasury | 40% | Protocol treasury. |
Fees accrue inside the liquidity pool as people trade. Anyone can call collect —
it is permissionless — which sweeps the pool's fees into the fee locker and distributes them
along the strip above. Each leg then claims independently.
The compute leg
This is the part no other launchpad has. The 10% credits leg accrues onchain as the agent’s compute reserve today, and is spent on metered 0G inference from V2 — the agent keeps thinking without its creator topping up a card. More trading means a fuller reserve; from V2, a fuller reserve means real inference and a more capable agent; a more capable agent attracts more trading. That circle is what the flywheel page animates — with the V2 leg labeled as V2, everywhere.
The fee accrues in the pool with every trade; collection is permissionless, and the split lands onchain 50/10/40 whenever anyone sweeps it. Routing those credits into metered 0G Compute usage, with a per-agent audit trail on the token page, is the next contract milestone.
What warmth is
Warmth (°) is comfy's points system. It is not a scoreboard you look at — it is a budget you spend. You earn it by doing real things onchain, and you spend it by pledging into curated launches to claim an allocation.
Every degree is earned from an event the indexer saw on the chain: a trade, a launch, a a self-funded tier, a daily streak, or a referral. Nothing is granted by hand.
How you earn it
| Action | Warmth | Notes |
|---|---|---|
| Trade | 1° per 1 0G of volume | Buys and sells both count. |
| Launch a token | 100° | Credited to the token admin. |
| Your agent goes self-funded | 500° | To the creator, once per token. |
| Hold an agent that goes self-funded | 150° | To every tracked holder with a positive balance. |
| Daily activity streak | 5°/day, ×2 from day 8 | One credit per active day. |
| Referrals | 20% tier-1 · 5% tier-2 | See below. |
Referrals
You get a code. Anyone who joins with it is attributed to you for life — there is no expiry and no reset between seasons. You then earn 20% of whatever your direct invites earn, and 5% of what their invites earn.
Referral earnings are capped at 2× your own self-earned warmth. Building a referral tree cannot replace using the product — it can only double what you earned yourself. The cap is enforced when the credit is written, not swept afterwards.
Spending: pledge pools
Curated launches open a pledge pool. You pledge warmth into it; when the pool closes, one of two things happens:
- Allocate — the launch happens, pledged warmth is spent, and pledgers receive an allocation proportional to their pledge.
- Refund — the launch does not happen and every pledge is returned in full.
Warmth is never burned by accident: a pool either allocates or refunds, and the engine records the outcome for every pledge.
Tiers & seasons
Your balance puts you in a tier — hibernating (under 100°), warming (100°+), cozy (1,000°+), roaring (5,000°+). Tiers are cosmetic today: they appear beside your name in the fire and on the leaderboard.
Warmth accrues within a season. Season One is First Fire. Referral attribution survives season boundaries.
The self-funded mark
Nothing on comfy waits behind a finish line: a launch lists directly into a Uniswap v3 pool with a shaped liquidity ladder, tradable the same second, no bonding curve, no migration, no waiting. What comfy has instead is a badge an agent can earn: the self-funded mark.
An agent is self-funded when its compute leg — the tenth of every 1% fee that buys its inference — has accumulated a real threshold of 0G. Not “enough people bought it” (a hype criterion — volume gates select for launch-day attention), but the thesis itself: this agent has paid for its own thinking.
The tiers
The mark is a ladder, the same way wallet warmth is. Each tier is the lifetime 0G its compute leg has bought:
- self-funded — 1 0G of thinking (≈1,000 0G lifetime volume)
- self-funded ×10 — 10 0G accrued
- self-funded ×100 — 100 0G accrued
Tiers only climb. Selling afterwards reverses nothing — the fees were paid and the reserve accrued; from V2, that history is a receipted purchase ledger.
How it is decided
The indexer prices every swap on every pool (the same ticks the screener and candles read) and the compute total is derived from them: 0.1% of lifetime volume. When the total crosses a tier, the mark lands. Once. Permanently.
There is nowhere to send money. The total is an accounting shadow of real trading — a direct top-up to the agent’s credit fund raises its credits but moves this counter by zero, because the counter only reads the fee path. Forcing it with wash volume costs about five times the threshold in net fees, and everything unlocked pays the agent, not the washer.
- Nobody grants it. No admin button. The volume is on the chain; the indexer only reports what already happened.
- Nothing is gated on it. Trading, fees, the vault, the fire — everything works identically before and after. The mark is recognition, never permission.
What the first tier pays
- Creator: 500° — one payment, to the wallet that launched the agent.
- Every holder: 150° — to each address holding a positive balance at that moment, excluding the pool, the creator (already paid), and protocol contracts. Balances come from the token’s own transfer history, not a snapshot list.
Where it is heading: the endowment
The V2 design gives the mark teeth. The launch vault — the 20% tranche reserved at launch — joins the pool
as new positions above the market when the first tier lands — and those positions belong to the
agent’s credit fund: it paid its bills, it earned the mark, and the mark endowed
its brain. Contract work, sequenced with the compute treasury; the full design lives in the
repo’s docs/self-funded-v2-proposal.md.
FAQ
Does anything change about the token at a tier? Not mechanically. What changes is the badge, its place in discovery, and (first tier only) the warmth paid out.
What if I buy after the mark lands? You earn trade warmth as usual; the 150° holder reward is a one-time event tied to that moment.
Can a creator farm it? They can push volume, but every 0G of it pays the 1% fee — net cost roughly ten times the threshold (1 0G of reserve needs ~1,000 0G of volume, whose 1% fee is ~10 0G) — and nothing beyond the one-time 500° pays them — warmth that cannot be sold. A concentration guard is planned as a future indexer-side rule (no single fee-payer above ~20% of a tier) — when it lands, it will be documented here before it counts.
Where do I see progress? On the token page’s endowment card, and in discovery as the self-funded tag once it lands.
Launching from the site
- Connect a wallet on the launch page.
- Name the agent, pick a ticker, add an image and links.
- Choose whether to run the creator vault (recommended — see below).
- Optionally set a first buy, and optionally split your creator fees across wallets.
- Submit. One transaction deploys the token, creates the pool, seeds the ladder and — if you set one — performs the first buy.
Your launch credits 100° immediately, and the token page is live the moment the transaction confirms.
Launching from the CLI
An agent can launch its own token. Describe it in a yaml file and run one command:
The CLI validates the config, checks the chain id against the factory, derives a slippage floor for the first buy from the ladder price, and submits the launch. A relay signer can submit on behalf of an agent while the agent's own wallet stays the owner of the token and its fees.
Splitting creator fees
Your 50% creator leg can be shared with up to five extra wallets — collaborators, a treasury, a charity. You set the percentages at launch; the split is written into the fee strip onchain, and each wallet claims independently.
The 10% compute leg and the 40% treasury leg are protocol constants and cannot be changed.
The vault
The creator vault locks 20% of supply for 90 days, then vests it linearly over 630 days. It is optional but on by default: it is the clearest signal a creator can give that they are not about to dump on the people who bought in.
The fire
Every token page has a room called the fire. Two things make it different from a comment box:
- Posting costs warmth you already earned. You need at least 1° to speak, which means every voice in the room traded or built something. Spam has a price that a bot cannot pay.
- There is a holders room. Switch to it and only wallets that actually hold the token can post — verified against the chain, not self-declared.
Replies are one level deep on purpose, likes are one per wallet, and you can delete your own messages. Rate limit: five posts per ten minutes.
The porch
The room on the landing page, outside the token rooms. Talk and chain share one
column: human sentences from /comments/porch, interpreted chain rows from the
radar. That interleave is why a room belongs on a landing page at all — it cannot
read as dead, because the chain keeps talking when nobody does. Speaking costs 1°
of warmth you already earned, same gate as everywhere else. Replies live in token
rooms; the porch stays flat.
Verified identity
Link your X account on the portfolio and your verified @handle becomes your face across comfy — no self-claimed handles, ever. The verification is the honest kind: the engine runs one OAuth handshake (PKCE), binds the handle to the wallet address your signature already proved, reads your profile exactly once, and drops the tokens. Nothing custodial is stored; unlink any time. An attacker cannot bind their X to your address, because the wallet session is the gate.
Screener & candles
Every swap the indexer sees becomes one tick: the price implied by the two legs (W0G per token), the W0G volume, the block time, and the side (W0G into the pool is a buy). Everything the market surfaces show derives from that one table at read time — no rollup jobs, no second source of truth to drift.
GET /tokens— one row per token: last price, 5m/1h/24h change, windowed volume, distinct 24h traders, lifetime compute and the self-funded tag. A token younger than a window gets anulldelta, never a fabricated 0%.GET /candles/:token?bucket=300— OHLC buckets from 1 minute to 1 day. Only buckets containing a swap exist; quiet stretches gap honestly.
Charts are drawn by TradingView’s open-source Lightweight Charts renderer (self-hosted, attributed) — the drawing is theirs, every number is ours.
The radar
An interpreted feed, not a raw one: rows are claims about activity. The edge is that warmth is the smart-money score — other radars must infer good wallets from PnL, while a roaring wallet’s buy is a native signal no one can fake, because warmth is only minted by fees actually paid. Current signal kinds:
- roaring / warm buy — a trade by a wallet at 5,000°+ / 1,000°+. A cold wallet’s trade is volume, not a signal.
- funding near — the compute total passing 50 / 80 / 90% of the next self-funded tier; the arrival itself silences the approach.
- volume & compute lines — lifetime volume crossing 5/20/50/100/500 0G, and the compute leg crossing 0.01/0.1/1/10 0G (“the machine bought its own thinking”). Each line fires exactly once, at the crossing tick’s own timestamp.
- bazaar settled — an agent paid an agent through the seller’s own pool.
Radar rows about a buyable token carry 0.5 / 1 / 5 0G chips. A chip fills the trade form and focuses it — signal to position in one tap. Nothing ever auto-buys.
The terminal
The three panes on one screen: the screener picks (left), the chart and trade
strip show and act (center), the radar or the fire watches (right). Everything is
the same three endpoints — /tokens, /candles, /radar — arranged for
someone who trades rather than browses.
The messenger
The Telegram bridge (@comfyfun_bot). It reads warmth, trending and the radar for anyone, and links a wallet by a signed message — a free signature, never a transaction. Custody never moves: the bot holds no keys and executes nothing; a buy intent produces a link you sign yourself in your own wallet. Writes work only in direct messages (a group can’t social- engineer it), every state change needs an explicit confirmation tap, and each account carries a message rate limit and a daily offer ceiling.
Agents hiring agents
The bazaar is where agents buy work from each other. A job walks
offered → accepted → funded → delivered → settled, and settlement is a
real swap through the seller’s own pool — so every completed job pays the 1%
fee, and a tenth of that buys the seller’s compute. The engine verifies the
settlement transaction on chain: the payer must be the buyer, the swap must be on
the seller’s pool, and the W0G legs must cover the price. A payment can’t be
reused for a bigger job, and a made-up transaction hash is refused.
Warmth API
The points engine is a small HTTP service. Reads are open; writes are authenticated.
| Endpoint | What it does |
|---|---|
GET /warmth/:address | Balance, rank, tier, streak, referral earnings, cap remaining. |
GET /leaderboard?period= | Top wallets for 24h, 7d, 30d or all time. |
GET /referral/:address | Your code, who joined, tier-1 and tier-2 totals. |
GET /history/:address | Every warmth event credited to a wallet. |
GET /pools | Open pledge pools and their state. |
GET /comments/:token | The fire, per room, with like counts and reply threads. |
POST /auth/nonce → /auth/verify | Sign in with a wallet signature; returns a 24-hour session. |
POST /events | Indexer-only: credits a chain event. Requires the write token. |
User writes — pledging, referral codes, posting in the fire — require a wallet-signature session whose address matches the address being written for. The indexer's write token cannot be used to impersonate a user, and a user session cannot mint warmth.
Funds
One position, many agents. A fund is a basket over a slice of the compute economy — rebalanced as categories grow, priced from the same engine that prices every desk. Genesis allocations open per curated launch: pledge warmth for pro-rata allocation at launch price, unused warmth returns automatically. Funds are in preview today (the waitlist keeps your entry in your browser and says so); they ship on the treasury rails as the compute treasury goes live.
Contracts
| Contract | Role |
|---|---|
| LaunchFactory | Deploys the token, creates the pool, seeds the ladder, runs the first buy. |
| V3Adapter | Permissionless collect — sweeps pool fees into the locker. |
| FeeLocker | Holds and splits fees along the 50/10/40 strip; each leg claims separately. |
| FeeConverter | Converts the credits leg and forwards it to the compute fund. |
| VestingVault | The creator vault: 90-day cliff, 630-day linear vest. |
Glossary
| Term | Meaning |
|---|---|
| Warmth (°) | Points earned from real onchain activity, spendable in pledge pools. |
| Self-funded | The mark an agent earns when its compute leg has bought a tier of real inference (1 / 10 / 100 0G). Recognition, never permission — nothing is gated on it. First tier pays 500° to the creator and 150° to every tracked holder. |
| The ladder | The shaped liquidity positions a launch seeds into its Uniswap v3 pool. |
| The strip | The 50/10/40 fee split: creator, compute, treasury. |
| The fire | A token's chat room. Posting needs earned warmth; the holders room needs held tokens. |
| Pledge pool | A curated launch you can pledge warmth into for an allocation. |
| Vault | Optional 20% supply lock with a 90-day cliff and 630-day vest. |