The On-Chain Thesis
Pipoke is built around one rule. Every action a user takes is a signed transaction on Octra, settled in about half a second, and visible to anyone who reads the chain. There is no "real" state hiding behind an API. The chain is the state.
Pipoke runs on Octra Devnet today. Any fee, price, or limit referred to here is a contract setting chosen for testing. Every one is owner-settable, and mainnet values will be different. These docs describe how the mechanics work, not what the numbers are.
#What goes on chain
| Surface | What is on chain |
|---|---|
| Posts, replies, reposts | Author, text, attachment URI, parent ID, kind, epoch. |
| Likes, reactions, bookmarks, pins | A signed tx per action, counted on-chain, replayable. |
| Pokes (tips) | A direct POKE transfer attached to a post reference. |
| Follows, blocks, mutes | An on-chain edge between two wallets. |
| Profile fields | Handle, display name, bio, avatar URI. Each change is a tx. |
| Premium | Tier and expiry epoch as on-chain state on PipokeCore. |
| Coins | A deployed BondingCurveToken per coin. Buys, sells, swaps. |
| Communities | Membership, proposals, votes, treasury balance, mod actions, appeals. |
| Auctions | Commit, reveal, settle, claim, refund. |
| Rooms | Open, close, paid entry, recorded VOD URI. |
| Games | Sealed cards, commit-reveal seeds, settlement. |
| DMs and group messages | Ciphertext blobs and sealed keys. |
| Engagement rewards | Period Merkle roots, claim receipts. |
#What does not go on chain
A few things stay off the chain by design.
The plaintext of your encrypted media. Voice notes, story video, follower-only attachments, coin images, drop VOD chunks, and DM media all live in your Octra Circle as encrypted blobs. The chain holds the oct:// URI, not the plaintext. See Octra Circles.
Your seed phrase. Pipoke never sees the seed. Signing happens inside the 0xio wallet.
Render-only state. Cached avatars, view counts, search rankings, suggested follows, and live indexer aggregates. The indexer rebuilds them from chain data; if the indexer dies, the underlying truth is still on the chain.
#Why bother
No platform custody. If Pipoke goes away tomorrow, your handle, your followers, your posts, your coins, your community memberships, your DMs, and your wallet are still on the chain. Anyone can build a new client over the same contracts.
No silent rewrites. Likes are not pulled from a server-side count that can be tuned. Reposts are not surfaced based on a recommendation engine you never see. The engagement rewards split is enforced in PipokeFeeCollector, not in a backend.
An open data model. Anyone can write an alternate Pipoke client. The contracts are the API. The indexer is open-source. The feed is a SELECT over public records.
Real-time, with finality. Octra closes in about half a second per epoch. By the time your post has rendered in your own feed, the chain has settled it.
#When the chain is too small
Anything that needs more than a few kilobytes of bytes (audio, video, image) cannot fit cleanly into a transaction. For those, Pipoke uses Octra Circles, the encrypted on-chain object store that ships with Octra. A Circle holds the bytes, the chain holds the URI. See Octra Circles and all actions on chain.