Octra Circles
A Circle is an encrypted object store that lives on Octra. Each circle is owned by a wallet, sealed by a public key the wallet registered, and addressed by an oct://circleId/path URI. Pipoke uses Circles for every payload too big to fit comfortably in a transaction: voice notes, video clips, story media, follower-only attachments, coin images, drop VOD chunks, and DM media.
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 in a Circle
| Pipoke use | What lives in the Circle |
|---|---|
| Voice notes | The audio bytes, encrypted with a per-message symmetric key. |
| Voice-note replies and comments | Same as voice notes, on the reply's tx. |
| Video posts | Encrypted MP4 manifest plus chunked encrypted payload. |
| Image posts and GIFs | Encrypted blob, plus a thumbnail. |
| Stories | Encrypted manifest, chunked encrypted media. |
| Follower-only attachments | The plaintext attachment, encrypted with a symmetric key, with a sealed wrap per follower. |
| Coin images | The launched-coin image. |
| Drop VOD chunks | Live audio/video segments dropped in as they record; assembled into the final VOD when the drop ends. |
| DM media | Photos, audio, files attached to a DM. Encrypted to the recipient's box pubkey. |
The chain holds the oct:// URI on the post or message receipt. The chain does not hold the plaintext bytes.
#How the URI works
An oct:// URI looks like:
oct://<circleId>/<path>
circleId identifies the circle (and therefore the owning wallet and the sealed key). path is a key inside that circle. The Pipoke app and a thin gateway service translate oct:// into HTTPS for browser rendering. The gateway never sees the plaintext: it serves the encrypted blob, and the audience with the unwrap key decrypts in the browser.
#Encryption
Pipoke encrypts every Circle payload with XSalsa20-Poly1305 (NaCl's secretbox). For a public post with an image, the symmetric key is published alongside the URI so anyone can decrypt. For a follower-only post, the symmetric key is sealed per follower with NaCl's box and the wrap is stored next to the URI. For a DM, the symmetric key is sealed to the recipient's X25519 box pubkey.
#Per-attachment cap
A single attachment payload caps at about 4 MB before the app refuses to upload. The cap is an app convention; the Circle accepts larger blobs. Bigger files (drop VODs especially) are chunked and uploaded as a manifest plus N chunks.
#Why Circles, not IPFS
The chain enforces the link. A post's oct:// URI is on the chain. If the Circle blob is missing, the chain still says the post exists. No silent rot.
No third-party CDN bill. Pipoke does not pay a hosting bill for your voice notes. Octra hosts them. If Pipoke disappears tomorrow, your bytes are still in your circle.