Biontbiont
Pipoke

Profiles and Social

PipokeCore holds the identity layer: who you are, who you follow, who you have blocked, and whether you hold premium. Everything here is on-chain against your wallet.

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.

#Profiles

A profile is three fields attached to a wallet.

Field Set by What it is
Handle register_profile or set_display_name Your unique @name.
Bio register_profile or set_bio A short description.
Avatar register_profile or set_avatar An avatar URI.

You register once with register_profile(handle, bio, avatar). After that, each field has its own update method, and each update charges a POKE fee. The fee for each kind of change is a contract setting.

Handles are unique. The contract keeps a handle-to-address map and a reverse address-to-handle map. When you change your display name, the old handle is released so someone else can take it. You cannot claim a handle another wallet already holds.

#Follows

The follow graph is a directed relationship. Following a wallet adds an edge from you to them.

PipokeCore.follow(target)
PipokeCore.unfollow(target)

Following charges a POKE fee. Unfollowing is free. You cannot follow yourself, you cannot follow the same wallet twice, and you cannot follow a wallet that has blocked you. The contract tracks a follower count and a following count per wallet, and an indexer reads these to render profiles.

#Blocking

Blocking is a one-way relationship that cuts a wallet off from you.

PipokeCore.block_user(target)
PipokeCore.unblock_user(target)

When you block a wallet, any existing follow edges between you and that wallet are removed in both directions. While the block is in place, the blocked wallet cannot follow you, and the feed shards refuse to route a poke tip from them to you. Blocking is free. You cannot block yourself.

#Premium accounts

Premium is a paid status that unlocks perks.

PipokeCore.buy_premium()

Premium is bought with POKE and lasts for a set period of about 100,000 epochs. Both the premium cost and the premium duration are contract settings.

buy_premium charges the premium fee and extends your premium expiry. If you still have premium time left, the new duration stacks on top of what remains rather than resetting it.

What premium gives you:

  • A higher post character limit than a regular account: 150,000 characters for premium against 7,000 for a regular account. See Posting and the feed.

Premium is checked by expiry epoch. Once the current epoch passes your premium expiry, the status lapses and you buy again to renew.