permachat has no servers, no algorithm, and no takedowns. Every social action — your profile, posts, follows, likes, even tips — is a real native token minted on-chain. The blockchain is the database. Your wallet is your account.
Instead of rows in a company's database, every action is a native asset the chain enforces the rules for. That single choice is where all the properties come from.
Your profile, posts, follows and likes are tokens held in your name. Not an account a company can suspend — assets on a public ledger.
Posts are stored inline on-chain (text-only, ≤280 chars). No servers to write to, nothing to pin, nothing to go down. Serverless for writes, literally.
Your feed is exactly the people you follow — walked from your follow graph. There is no global feed, so spam can be posted but cannot reach you.
A token is minted into its own validator's custody and can only return there or be burned. That inductive invariant gives real soulbound follows and unforgeable authorship.
Tipping a post locks ADA in a public jar only the author can claim. Unclaimed tips sit on-chain as a verifiable flex — bragging rights you can prove.
Moderators publish labels; your client decides what to do with them. You subscribe to the labelers you trust — moderation is a choice, not a gatekeeper.
The app builds a transaction in your browser, your wallet signs it, and it goes straight to Cardano. Reads come back through a public read endpoint. Nothing in the middle holds your keys or your data.
The exact same transaction builders that the tests and the deploy use run in your browser (Lucid Evolution + WASM). Going from testnet to mainnet is a provider swap, not a rewrite.
Reading the chain needs a CORS-capable endpoint — a preprod Blockfrost id, or a free Koios relay Worker anyone can deploy. A deployment can bake a default so users configure nothing.
Every token follows the same lifecycle. It's minted straight into its validator's own script address, can only sit there (soulbound) or be burned by its owner, and burning refunds the small min-ADA deposit. That's what makes authorship unforgeable and follows non-transferable.
permachat is live on the Cardano preprod testnet. Each entity type is one minting policy — a real, deployed Plutus V3 validator. Click through to Cardanoscan and see the tokens and their custody addresses on-chain. Nothing here is a mock.
| Token | What it is | Policy ID | Verify |
|---|---|---|---|
| PROFILE | Your identity (one per wallet, soulbound) | e900574ad045f5462755e2b09e60655557981d6f6f4a8ce862667a1a | policy ↗ · custody ↗ |
| POST | A post (≤280 chars, stored inline on-chain) | 1b1219e85c18a7ef6564de92444be59bab884c5f1e5252a07376529b | policy ↗ · custody ↗ |
| FOLLOW | A follow edge (soulbound; unfollow = burn) | e57719ae84044fb34e118bef8ff3b4c58394d1dd7f299b5c0fd689e9 | policy ↗ · custody ↗ |
| LIKE | A like (post must exist; no self-likes) | 285e7de3eb4aaf7a7ff92731be0d580ad07f27b925c8bccd1fa71089 | policy ↗ · custody ↗ |
| TIP | A public tip jar (author-claimable; no self-tips) | 0cf4b50fe15e725b969571ba1d2bdc4e32b43aef1b9e2814b6b6030c | policy ↗ · custody ↗ |
These are preprod (testnet) policy IDs. The validators are compiled from source in CI and the committed blueprint is byte-for-byte reproducible — and every token above can be inspected directly on Cardanoscan.
You need one thing users don't usually have: a Cardano wallet on the preprod testnet. It's free and takes a couple of minutes. No permachat account, no signup — your wallet is your account.
Install Lace or Eternl (a browser extension that supports CIP-30). Create a new wallet and write down your seed phrase — it's the only way to recover it.
Switch the wallet's network to Preprod (in Lace: Settings → Network → Preprod). permachat is on the testnet, so mainnet ADA won't appear here.
Copy your wallet's receive address and paste it into the Cardano preprod faucet. It sends test ADA in a few seconds. You need a little to cover the ~1.5 ₳ deposit each action locks (refunded when you delete/unfollow) plus tiny network fees.
Go to app.permachat.org, switch the source toggle to Wallet, and connect. Create your profile (mints a PROFILE token), then post. Your wallet pops up to sign; the post appears once a block confirms (~30s).
Want to explore first, with no wallet? The app ships with a full Simulator — the whole protocol running in your browser. Just open it and start clicking.
Serverless, verifiable, and yours. Open source, running live on Cardano preprod.