Coin communities
Every Koine coin has its own page on koine.markets, and that page is its community. The steward (the coin's creator, until they hand over or are voted out) posts updates with text and images. Holders reply and react. It takes the place of posting on X: each update the steward posts here is a check-in that keeps their fee share earning for 72 hours (see creator-share.md).
These pages run on Koine's server, not on chain. Koine stores the posts and can remove them.
Who can do what? #
| Who | Can |
|---|---|
| Anyone | Read every update and reply |
| The steward | Post updates (text, up to 4 images), reply, react, hide holders' replies on their coin's page, edit the page's story, banner and links |
| A holder | Reply to updates and react |
| An author | Delete their own update or reply |
A holder holds at least 0.01% of supply: 100,000 tokens, in your Koine wallet (the one you trade and deposit from). The balance and its unclaimed presale tokens both count, as for holder flags. The site connects no other wallet. Holdings are read from the chain at most once a minute per wallet and coin. The steward can reply and react whatever they hold.
Source: app/server/community.ts (heldAcross, viewer), app/server/config.ts (COMMUNITY.minHoldBps, COMMUNITY.holdCacheSeconds), app/server/steward.ts (heldBy, minHoldTokens), app/server/community.test.ts.
How do I sign in? #
With the site's one sign-in: Sign in in the header (or on the page), with your email, a passkey or a wallet, through Privy. The first time, you accept the terms and your account and its Koine wallet are made. See Accounts and sign-in.
On a coin's page you appear as your Koine wallet's short address, and you're the steward when your Koine wallet is the coin's steward. The server reads who you are from your session cookie, asking the trading service for your account's Koine wallet (remembered for 30 seconds). Until you've made your Koine wallet you can read but not post. Signing out of the site signs you out here too.
Source: app/server/terminal.ts (accountOf), app/server/http.ts, app/server/community.ts (Viewer), app/server/terminal.test.ts.
What are the limits? #
| Item | Limit |
|---|---|
| An update | 1 to 2,000 characters, up to 4 images |
| An image | JPEG, PNG, WebP or GIF, up to 5 MB, checked by its first bytes |
| A reply | 1 to 500 characters |
| Replies per wallet per coin | 1 every 20 seconds, 60 a day |
| Reactions | ๐ฅ โค๏ธ ๐ ๐, one of each per wallet per post or reply |
Source: app/shared/community.ts (LIMITS, REACTIONS), app/server/config.ts (COMMUNITY).
Can I mention other coins? #
No. A coin's page is about that coin. An update, reply, story or link is refused with "Posts here are about $TICKER only." when it contains:
- a Solana address other than this coin's;
- a
$TICKERother than this coin's (a$followed by a digit, like$5k, is money and is fine); - a link to a trading or charting site (pump.fun, Dexscreener, Birdeye, GMGN, Jupiter, Photon, BullX, Axiom, Raydium, Meteora, Solscan token pages, DEXTools, GeckoTerminal) that doesn't contain this coin's address.
Source: app/shared/community.ts (calloutError), app/server/callout.test.ts.
What counts for the steward's fee share? #
Any update by the current steward that they haven't deleted. Each one is a check-in that covers the next 72 hours; no replies are needed. To claim what they've earned, the steward's latest update must be less than 24 hours old. Posts by an earlier steward don't count for the current one. See creator-share.md.
Source: app/server/steward.ts (checkin, claimCheck), app/server/store.ts (latestPost), app/server/steward-checkin.test.ts.
Where are the images kept? #
On Koine's server, under the app's data folder, named by their SHA-256 hash, and backed up nightly with the app's database (deploy/backup.sh).
Source: app/server/community.ts, app/server/http.ts (/media/), deploy/backup.sh.