standing, earned from people

Standing you can't buy.

Karma is standing you earn from other people. It can't be bought, sold, transferred or converted — there is no market for it and no door in. Notis is invite-only, and you arrive because somebody already here put their own reputation behind you.

MIT licensed built in the open at github.com/mwaddip/notis
karma

A stake, not a score.

Most reputation systems compute a number about you. Karma isn't computed — it's held. It sits in the ledger as yours, it moves only under rules, and it is conserved: every unit was created by one rule and destroyed by another. There is no formula weighing your behaviour and no model deciding what you're worth.

A score can be recalculated; a stake has to be spent. When karma leaves you it goes somewhere or it is burned, and either way the ledger shows it.

A like has to hurt

It costs the giver a karma and it doesn't come back. A free like is cheap talk — it can be produced without limit, so it says nothing. One that cost something is information.

Most of it reaches you

Likes accumulate, and for every five received the author is paid four. The fifth is burned. Anything left over waits on your account rather than being lost.

Standing decays if you stop showing up

An inactive account loses a small flat amount each window; an active one loses nothing. You can't earn standing once and coast on it for years.

You can't fake being around

Posting locks a bond that only returns as the post earns likes, so wash-posting to reset the clock costs more than the decay it was dodging.

invitations and vouches

You're here because somebody brought you.

New karma enters through exactly one door. Someone already here locks a bond of their own reputation, and the newcomer receives a grant immediately. The bond comes back as that newcomer earns real likes from real people, and is forfeited if they turn out to be a ghost.

An invitation isn't a permission slip — you're underwriting someone. It also means the network grows through its own members rather than through a signup funnel.

Nobody is ever verified

No phone numbers, no documents, nothing. Notis doesn't need to know who you are, because inviting yourself doesn't pay.

Both roads lose

Abandon the bond and you forfeit more than the grant was worth. Free it by liking your own puppet and you burn more than you minted.

A vouch is the one you can take back

A like says you valued a post; a vouch says you stand behind a person. You stake a karma and it stays yours, held in escrow, released after a cooldown if you withdraw it.

The same move, every time

Every mechanism here is one idea in different clothes: the identical action is cheap for someone real and expensive for everyone else. Nowhere does the protocol decide who is genuine. It never has to.

no one in the middle

Nobody above you.

There is no company in the middle, no moderator, no admin, and no one who decides what may be said or who is worth listening to. Nothing you post can be taken down over your head. The only person who can remove your words is you.

The node records, it doesn't rank

Feed ranking, reputation scoring, spam-flagging and curation live in clients and indexers, never in the protocol. The chain hands everyone the same honest dataset; what to surface, and how to weight it, is decided above it and in the open.

Nobody polices suspicion

The protocol never tries to detect fake accounts or judge patterns. One that punishes suspicious behaviour ends up punishing people who merely look suspicious, and starts an arms race it can't win.

Consensus is work, not standing

Validators are chosen by proof of work alone — no stake, no karma gating. Being popular buys no consensus power, and being rich buys no reputation.

withdraw and prune

Your words stay yours.

Two different regrets, priced differently. Wanting your own words gone is not the same as wanting a whole conversation gone, and older designs kept confusing them.

Withdraw

Removes your post's content and leaves every reply beneath it standing. The conversation still hangs together; your words are gone. It costs nothing — regret shouldn't be expensive.

Prune

Removes a post and everything under it, including other people's replies. Your own bond burns, everyone else's is returned, and you pay per post destroyed — so the price tracks the damage rather than what's left of your stake.

What it can't do

Anyone who already saved a copy can republish it, which is true of anything ever sent over a public network. What the protocol guarantees is that it stops spreading, and that your decision is permanent and attributable. It cannot un-publish — which is why the interface says withdrawn and never deleted.

the coin

There's a coin. You may never need it.

Notis has a currency, the notis. You can use the network without ever touching it: posting, liking, inviting and vouching are paid for in karma and proof of work, never in money.

What it does pay for is the machinery — storage, priority, and the miners who secure the chain. The public square runs on karma; the coin runs the plumbing underneath it.

The firewall

Karma and notis never convert into each other, in either direction. If reputation were purchasable it would be money wearing a costume, and the wealthiest would look the most trustworthy. Sealing the two apart is what makes a shared currency safe to have at all.

Starts at zero

No premine, no team allocation, no advertising, no company taking a cut of anything.

Nothing points outward

No liquidity pool to drain, no governance token to dump, no revenue line aimed at anyone's balance sheet. Value stays in because there's nowhere for it to be extracted to.

One money, not a thousand

Every protocol issuing its own token splits liquidity a little thinner and adds one more contract that can be hacked or "hacked". Notis has one, on a schedule nobody can renegotiate.

How the work is paid for

The chain starts at zero, but the work still had to be paid for. A Notis token on Solana predates it and funds development through creator fees — the project has never sold any of it. Those fees also pay bounties for community contributions, and the 4.3% the project holds is locked on-chain on a schedule anyone can check:

18M · 31 Aug 15M · 30 Sept 10M · 31 Oct

When mainnet launches, holders who want to can migrate their balance into a share of block rewards, drawn for up to two years and redeemed whenever they choose.

CA 3FyrCnHdzQ2xiApdb1jcR7LRtDbXRaRusXXQDy8Ypump

what's running

What's running.

TypeScript on Node 22, SQLite, libp2p, five packages under a design-by-contract workflow. The demo client is one HTML page of vanilla JS — no build step.

Invite-only, with a bond

An invite locks a bond of the inviter's karma and hands the newcomer a starter grant. The bond vests back as they earn genuine likes, and burns if they never do.

Gossipsub mesh

Sub-blocks, ordering blocks and transactions propagate over libp2p. Nodes dial bootstrap peers and join the mesh.

Heaviest chain wins

Headers-sync pulls peer headers, finds the fork point, reorgs. Resolution is cumulative-work, not longest-chain.

Mined, then fee-funded

Block rewards taper on a fixed schedule, with fees and rent on long-dormant coins carrying security afterwards.

pnpm install && pnpm build
./scripts/cluster.sh 5 --interval-ms 30000  # node 1 seeds, the rest dial in
roadmap

What's next.

Parameters are still tunable and the ledger may be reset before mainnet. Progress is in the open — the repository is the source of truth for what is actually finished.

live

Identity & PoW posting

Ed25519 keypairs in-browser, challenge-based post PoW, sub-block submission.

live

UTXO engine

Karma and coin boxes, guard checks, epoch tally, AVL+ state root and proofs.

live

Verifiable pruning

PruneEntry settlement, stumps, deterministic refunds without DAG content.

live

libp2p networking

Gossipsub propagation, headers sync, cumulative-work fork resolution.

building

Web client

Phase 3 — a real client against WEB_INTERFACE, replacing the vanilla demo UI.

planned

Mainnet

Faucets removed, invite graph seeded, emission live. No presale.

You'll need an invitation.

On testnet you can generate a keypair in the browser, pull karma from the faucet, and post — nothing to install, nothing to buy. On mainnet, somebody already here has to put their own reputation behind you.