Whitepaper · v1 draft

token.talk

Last updated October 20, 2026

A social feed for every ERC-20, with skin in the game.

1. Abstract

token.talk gives every ERC-20 token its own public wall. To post on a wall you pay in that wall’s token; to like a post you donate that token to it. Most of every payment is burned, the author of a liked post earns a share, and the protocol’s cut buys and burns $TOLK. Posts are ranked by what was paid and liked. Content lives in the event log, not in contract storage. It starts on Robinhood Chain.

2. The problem

Token communities talk on platforms that have nothing to do with the token: free to post, easy to spam, ranked by opaque algorithms, and full of people with no stake. Holders who actually care have no way to be heard above the noise, and the conversation adds nothing to the token itself.

token.talk flips that: talking costs the token, backing a take costs the token, and both make the token scarcer.

3. Token Posts

  • Every ERC-20 address has a wall: token.talk/robinhood/{address} (other chains later as /{chain}/{address}).
  • No listing and no permission — one TokenTalk contract per chain serves every token.
  • The top of a wall shows the token: name, symbol, supply and its totals on token.talk (posts, paid, liked).
  • Post ids are incremental and local to each token: the first post on a wall is #1.

4. Posting & top-ups

post(token, amount, content) — connect a wallet, approve the token, write, choose any amount above zero. The contract records the post’s owner and amount paid and emits Posted(token, postId, author, amount, content). The text exists only in that event.

topUp(token, postId, amount) adds more of the token to an existing post (by anyone), raising its rank. Posting and top-ups use the same split: 95% burned, 5% to the protocol.

5. Likes

Likes are decimal: a like is a donation of any amount of the token. like(token, postId, amount) splits it 40% to the post’s author, 50% burned, 10% to the protocol, and emits Liked. A like can’t be faked — it costs what it says.

6. Ranking

Each post’s rank = amount paid + likes received (both gross, in the token’s units). Walls sort by Top (rank), Latest, or Most liked. Ranking is computed in the client from on-chain aggregates, so anyone can verify it and any other front end can reproduce it.

7. Splits & burns

ActionBurnedAuthorProtocol
Post / top-up95%—5%
Like50%40%10%

Burning means sending to the dead address 0x000000000000000000000000000000000000dEaD, which works for every ERC-20 without the token having a burn function. The splits are constants in the contract.

8. $TOLK

$TOLK is the platform token. The protocol’s share from every wall — in whatever token that wall uses — is collected by the protocol and used to buy $TOLK and burn it. The swap happens in a separate treasury step, never inside a post or like, so users never pay swap gas or slippage.

Status: not launched yet. $TOLK will launch on the pons launchpad on Robinhood Chain; TokenTalk does not depend on it, so walls work from day one and fees accumulate for the first buy-and-burn.

9. Identity

No registration. Your wallet is your identity — the contract only ever records addresses. Display names and profiles live off-chain (signed by your wallet), so they cost no gas and can be changed freely; until you set one, the site shows your shortened address.

10. Reads with few RPC calls

The contract stores only what ranking needs and exposes batched views, so a wall loads in a couple of calls:

  • getToken(token) → posts, total paid, total liked.
  • getPosts(token, start, count) → owners, amounts paid, likes received for a range, in one call.
  • getPostsByIds(token, ids) for arbitrary sets.
  • Post text comes from Posted logs; the client merges logs with aggregates and sorts locally.

11. Contract interface

post(address token, uint256 amount, string content) returns (uint256 postId)
topUp(address token, uint256 postId, uint256 amount)
like(address token, uint256 postId, uint256 amount)
claim(address token, address to) returns (uint256 amount)   // payouts the token refused to deliver

event Posted(address indexed token, uint256 indexed postId, address indexed author, uint256 amount, string content)
event ToppedUp(address indexed token, uint256 indexed postId, address indexed by, uint256 amount)
event Liked(address indexed token, uint256 indexed postId, address indexed liker, uint256 amount)
event PayoutPending(address indexed token, address indexed account, uint256 amount)
event PayoutClaimed(address indexed token, address indexed account, address to, uint256 amount)
event BurnHeld(address indexed token, uint256 amount)

Any app can build on the same walls: the events are the feed, and the views are the scoreboard.

12. Security

  • Every token is treated as untrusted: amounts are measured by balance change (fee-on-transfer safe), calls are re-entrancy guarded, and code-less addresses are rejected.
  • The contract never holds user funds between transactions. If a token refuses a payout (for example a frozen author or fee wallet), that share is credited and claimable later to any address — the wall keeps working. If a token refuses sends to the dead address, the burn stays locked in the contract forever, equally out of circulation.
  • There is no upgrade, pause or withdraw path. The owner (2-step transfer) can only change where future protocol fees go.
  • Tested with unit, fuzz and invariant tests plus an internal review (published in the repo). An independent audit is recommended as usage grows.

13. Open questions

  1. The exact $TOLK buy-and-burn cadence once it launches on pons.
  2. An indexer for very large walls (v1 reads logs over RPC).
This whitepaper describes software that is still being built. It is not an offer of any token and not financial advice.