Proof
Everything on this page names where it came from. Numbers are read from the database or a public registry at render time; unknowns say they are unknown; and the last section of each part is the part we would rather tell you than have you find.
Figures read 2026-09-25 14:50 UTC · cached for 5 minutes · security
How to read this page
Three things can be true of any figure here, and they are not the same thing. A number is a reading, with its source under it. “Couldn't read this” means a read failed — it is never shown as a zero, because not knowing is not the same as none. “Not measured” means we don't collect it, and says why.
A measured zero is shown as a zero. Small numbers on this page are small because the product is young, and rounding them up would defeat the purpose of having the page.
Product status
No Totym token exists. No mint, no contract, no presale, no allocation, and nothing promised. The product does not require one and does not use one for anything.
Private preview: anyone can build a community and save a draft, but taking one live is restricted to an allowlist while pricing is unsettled.
Source: NEXT_PUBLIC_PUBLIC_MODE- Environment
- productionSource: VERCEL_ENV
- Built
- 2026-09-25T14:45:34.910ZSource: BUILD_TIME, baked at build in next.config.ts
- Commit
dc4535c96ff010771570f1d4a0f917d9d2d0b7cdIdentifies the build you are served. The application repository is private, so this is a fingerprint you can quote back to us, not a commit you can open.
Source: VERCEL_GIT_COMMIT_SHA- Branch
- mainSource: VERCEL_GIT_COMMIT_REF
How finished each part is
These labels are our judgement, not a measurement — stated per surface rather than as one word about the whole product, because “Totym is in beta” tells you nothing about which part to put weight on.
- Token gating — Solanalive
Balances are read from chain on the server on every decision. This is the oldest path in the product and the one everything else is built on.
- Token gating — EVMbeta
The same server-side read, on Ethereum, Base and Robinhood Chain, for ERC-20 and ERC-721. Fewer chains than Solana has had, and less traffic through it.
- Communities and contentbeta
Creating, publishing, posting, channels and courses all work end to end. Small numbers of real communities have used them, which is not the same as having been load tested.
- Developer SDKbeta
Published to npm and verified against the live endpoints, at 0.x. The wallet-proof flow it wraps is newer than the gate it talks to.
- Token launchingexperimental
It signs a real transaction with real money on a third-party launchpad. Treat every run as irreversible, because it is.
- A Totym tokenexperimental
There is no Totym token. Nothing is minted, planned on chain, or promised — see docs/token-role.md and the token manifest.
Known limitations
No third-party security audit has been performed. Not commissioned, not in progress, not scheduled.
Where to look: There is nothing to link, which is the point of saying so.The public token lookup endpoints answer about an address anybody can name, so they prove holdings and not control. Every response says so in its own body.
Where to look: src/app/api/sdk/access — responses carry verified: false unless a signature was checkedTotym's servers make every gate decision. If they are down, gates do not fail open or closed — they do not answer: a decision that could not be made returns 503 with a reason, not a refusal, and is never cached as one.
Where to look: src/lib/accessDecision.ts — allow / deny / unknown; scripts/verify-access-decision.tsA member whose check could not be completed is told so by the API, but the community interface does not yet show that state — it falls back to the connected wallet's balance on any failure, which can render a room as locked when the truth is that nobody found out.
Where to look: src/components/community/tt/Circle.tsx — the !res.ok branchCommunity content lives in a database we operate, not on chain. Your token is yours regardless; the posts around it are ours to keep serving.
Where to look: migrations/ — courses, activity, channels, membersUploaded images go to IPFS, which is public and effectively permanent. An image cannot reliably be withdrawn once distributed.
Where to look: src/lib/pinImage.tsMembership figures are per (community, wallet) pairs and start from the day the table was added, with no backfill. They are a floor, not a history.
Where to look: migrations/0008_members.sqlNo registered legal entity and no stated governing jurisdiction. The terms therefore carry no governing-law clause, and say so.
Where to look: src/lib/legal.ts — OPERATOR.entity and OPERATOR.jurisdiction are nullThe database allows anonymous reads of the tables public pages read — including posts. Which posts a given person may see is decided in the API layer, not by the database, so that layer is the only thing enforcing it.
Where to look: src/lib/dataAccess.ts — the posts row, and migrations/0013_rls_lockdown.sqlThe database schema is not in version control. Only forward-only migrations are, so what the database actually enforces cannot be proved from the repository — including the row-level security posture stated above.
Where to look: migrations/ — fifteen alter-only files, no base schema; src/lib/dataAccess.ts sets SCHEMA_IN_REPO = falseDeleting a community hides it immediately and keeps it recoverable for thirty days, as the privacy policy says. The job that then removes it permanently is not currently scheduled, so removal is on request rather than automatic until it is.
Where to look: src/app/api/cron/cleanup/route.ts exists and is guarded; no cron schedule is configured in the repository
Where the boundary is
Four things get conflated in this industry — the product, the protocol, the server and the token. Here is which is which.
What is actually on a blockchain?
Token ownership, and nothing else. A gate reads balances on Solana and on Ethereum, Base and Robinhood Chain. When you launch a token, your wallet signs a transaction on a third-party launchpad. Totym deploys no program and no contract of its own, so there is no Totym upgrade authority over anything on chain.
What does a Totym server decide?
Every access decision. The chain is read server-side and compared against the creator's rule; the browser is told the outcome and is never asked for it. Control of an address is established by a signature over a nonce this server issued — single-use, valid for 3 minutes, and spent whether or not the signature turns out to be correct. A session token lasts 30 minutes.
What is in your database?
Communities and their gate rules, the content inside them, your email address and linked wallet addresses, a row recording the first time each wallet passed a gate, and daily usage counters. Row-level security is on for every table. The anonymous key the browser holds can read only the public subsets that public pages need (gates, posts, profiles, post_likes, post_replies, courses), and can insert only into the two public submission forms (community_requests and enterprise_inquiries). It cannot update or delete anything, anywhere — no anonymous caller can change a community, a gate rule, a post, a profile or a membership. Everything else, including every access decision, runs in server code holding a service credential that bypasses RLS entirely.
What does a creator control?
The gate rule — which token, how much, which tiers — and everything inside the community: its content, its channels, whether it is live or paused. Changing the rule changes who gets in, immediately and without our involvement.
What do Totym administrators control?
Service-credential access to the database, which means we can read and change any row, including community content. We act on abuse reports, and while the product is in private preview taking a community live is restricted to an allowlist. We cannot move, freeze or recover your tokens, because we never hold keys.
What happens if Totym is unavailable?
Your tokens are unaffected — they were never in our custody and gating does not touch them. Everything else stops: gate decisions are made here, so they are not made; communities hosted here are unreachable; the SDK's verification endpoints are ours, so an app built on them loses access checks. Nothing about the product survives us, and a page claiming otherwise would be lying.
Verification, and what of it you can check yourself
A gate decision reads a balance. Reads leave no trace on a blockchain, so there is no transaction to link for one — and a page that offered you a “verification transaction” would be showing you something else. What can be checked is the balance itself, on any explorer, using the programs below.
- Decisions, last 30 days
- Couldn't read this
the database read failed. It is not zero — we do not know.
Would have come from: usage_daily, kind = gate_decision - Decisions since counting began
- Couldn't read this
the database read failed. It is not zero — we do not know.
Would have come from: usage_daily, kind = gate_decision - Counting began
- Couldn't read this
the database read failed.
Would have come from: usage_daily, kind = gate_decision - Most recent day with a decision
- Couldn't read this
the database read failed.
Would have come from: usage_daily, kind = gate_decision
No individual decision is shown, and none will be: a single decision is about a specific wallet, and aggregating by day is what makes it safe to publish at all. Our own devnet communities are excluded from these figures, and how many were excluded is itself published below.
The programs a gate reads
Loaded from one module so the addresses here and the addresses the server uses cannot drift apart. None of these is ours, and every one of them is upgradeable by its own maintainers — which is worth knowing before you decide how much “on-chain” is worth.
- SPL Token
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DAReading how much of a token an address holds. This is the read a Solana gate decision is made from.
Control: Solana Labs. Upgradeable by them, not by Totym. · open on an explorer - SPL Token-2022
TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEbThe same read, for tokens created under the newer program. Held separately because its extensions can change what a balance means.
Control: Solana Labs. Upgradeable by them, not by Totym. · open on an explorer - Metaplex Token Metadata
metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1sA token's name, symbol and image, when a community displays them.
Control: Metaplex Foundation. Upgradeable by them, not by Totym. · open on an explorer - pump.fun
6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6PRecognising that a mint was created on pump.fun, and creating one there when a creator chooses that route. Totym never holds the keys to a token it helps create.
Control: pump.fun. Upgradeable by them, not by Totym. · open on an explorer
A transaction you can open
The most recent token created through Totym. This is the one artifact on the page that exists independently of us: if we vanished, it would still be there.
DStar8tAKLxMEkhb7eyVWTXHzJhiV8n3DnbjXJj7hTd8solana · pump · the token · the transactionPublic chain data. The creator's wallet and community are not published here.
Source: token_launches, status in (confirmed, recorded)Centrally operated, and we would rather say it here than have it inferred: every access decision is made by a server we run. There is no Totym program on any chain, so there is nothing on-chain to audit and nothing that keeps working if we stop.
Source and releases
- @totym/sdkpublic · MIT
The client anybody integrating with Totym runs. Readable, buildable and auditable by you — which is the half that matters, because it is the half that runs on your users' machines.
https://github.com/build-nimbus/nimbus-sdk - Totym applicationprivate · no public licence, because the source is not published
Closed source. Said plainly rather than left to be inferred from a missing link: the server that makes gate decisions is not currently something you can read. The commit below identifies the build you are served, and the SDK above is the part you can verify independently.
- @totym/sdk on npm
- 0.2.0Source: npm registry, dist-tags.latest for @totym/sdk
- Published
- 2026-09-24T23:27:28.491ZSource: npm registry, time[0.2.0]
- Installs, last 7 days
- Couldn't read this
npm has no download record for this package yet (it answered "package @totym/sdk not found"). It is not zero — we do not know.
Would have come from: https://api.npmjs.org/downloads/point/last-week/@totym/sdk
The version comes from the registry rather than from our own package.json, because the registry says what you can actually install and a repository only says what we meant to publish. The changelog is the SDK's release notes and its README, both in the public repository above.
Security
Report something: hello@totym.io. Write to the address above with what you found and how to reproduce it. We will confirm receipt, tell you what we think it is, and tell you when it is fixed. Please do not exercise a finding against a community that is not yours.
Audit status. None. No third-party audit has been commissioned, performed or scheduled.
Bug bounty. None. There is no bug-bounty programme and no reward budget, so a report is a favour and will be credited as one if you want it to be.
What we do and do not trust, in detail, including how wallet control is established and where it deliberately is not: /security.
Metrics
Every population is named, because one integer standing in for several is how a number ends up thirty times larger than the truth. Only the first of these is a community.
- Communities, published
- 2
Claimed by a creator, live, on mainnet. The only figure that means 'a community'.
Source: gates, via lib/communityCensus.ts - Communities, paused
- 0
Somebody's community, temporarily not serving.
Source: gates, via lib/communityCensus.ts - Unclaimed token listings
- 15
Pre-seeded token placeholders nobody has made anything of. Listed, not communities.
Source: gates, via lib/communityCensus.ts - Our own test communities
- 11
Devnet. Ours, never anybody's community.
Source: gates, via lib/communityCensus.ts - Archived or deleted
- 41
Archived or soft-deleted.
Source: gates, via lib/communityCensus.ts - Rows in the table
- 63
Every row in the table. A database fact, published so the arithmetic above can be checked — never a public metric.
Source: gates, via lib/communityCensus.ts - Memberships
- 6
Recorded from the first time a wallet passes a gate. No backfill, so this is a floor.
Source: members, one row per (community, wallet) - Distinct wallets that have passed a gate
- 1
Distinct addresses, counted without storing or showing any of them.
Source: members.wallet_address - Test communities excluded from decision counts
- Couldn't read this
the database read failed. It is not zero — we do not know.
Would have come from: gates, network = devnet
A token's holder count is never used as a membership figure anywhere on this site. A token has holders; almost none of them have been here. The membership figures above count arrivals, start from the day the table was added, and were never backfilled — so they are a floor rather than a history.
Something here is wrong
Then it is a bug and we want it. Every figure above names its source precisely enough to argue with; if a number does not match what you can see, write to hello@totym.io and quote the commit at the top of the page.