Docs
Post it. Coin it.
kin is a visual social network on Robinhood Chain. Every image you publish launches a real PONS memecoin. People don’t collect the post — they trade it.
What kin is
kin is a visual social network on Robinhood Chain. Every post you publish launches a real PONS memecoin. People don’t collect the post — they trade it. kin does not deploy its own token contracts. Your wallet talks to the official PONS v2 factory; profiles, captions, and the feed live here.
The loop
- 01
Connect
MetaMask, Phantom, or WalletConnect. On mobile use the wallet app or WalletConnect — kin adds Robinhood Chain (4663) if it isn’t there yet.
- 02
Profile
Your address is the identity. Pick a username, display name, bio, and picture.
- 03
Post
Upload an image and a caption. Optional coin name and ticker — we fill them from the caption if you skip them.
- 04
Launch
Publishing calls PONS launchAndBuy on Robinhood Chain. The new token and curve addresses are saved with the post.
- 05
Feed
The post appears on Home and Explore with ticker, market cap, contract, and a Buy button.
- 06
Trade
Anyone opens the post and buys or sells the coin on the PONS bonding curve. Confirmed only means the chain receipt succeeded.
Wallet & chain
Connect with MetaMask, Phantom, or WalletConnect. kin is Robinhood Chain only — chain ID 4663, native gas is ETH. After you connect, the app switches you over, or prompts the wallet to add the network.
You need a little ETH on Robinhood Chain. A launch costs the PONS launch fee (about 0.0005 ETH) plus a tiny opening buy (0.00001 ETH) so the coin is live on the curve. Trades need extra ETH for the buy and gas.
Wallet safety
kin never imports a wallet, never asks for a seed phrase, and never stores a private key. You connect the extension you already have (MetaMask, Rabby, Phantom, and so on). Keys stay in that extension. This site only asks it to sign.
- Allowed signatures — PONS
launchAndBuy, curvebuy, curvesell, and an ERC-20approvefor the exact sell amount to that post’s PONS curve. - Nothing else — no arbitrary ETH sends, no other contracts, no unlimited approvals, no message signing.
- Curve is re-checked — before a trade, kin asks the official PONS factory which curve belongs to the token. The wallet is only prompted if that matches.
- You still confirm — every spend pops in your wallet. If you don’t recognize the PONS contract, reject it.
Profiles
There are no emails. Your wallet address is the account. The first time you connect, kin asks for a username (3–20 letters, numbers, or underscores), a display name, and a bio. You can add a picture later from your profile.
Public profiles live at /[username]. They show posts you’ve created and the coins those posts launched.
Create a post
Go to /create. Drop an image, write a caption, optionally set a coin name and ticker. Publish does four things in order:
- Uploads the image (and pins to IPFS if a Pinata key is set).
- Builds a PONS
launchAndBuytransaction in the browser — never from a server. - Asks your wallet to sign. Status: Preparing → Wallet confirmation → Submitted → Confirmed.
- Reads the on-chain
TokenLaunchedevent, then saves the post with the token and curve addresses.
If PONS has public launches closed, canLaunch(yourWallet) returns false and kin stops before asking for a signature. If the transaction reverts, you will see Failed — never a fake success.
Feed & explore
Home is a single column of post cards: creator, image, caption, time, ticker, market cap, contract, share, Buy. Clicking a card opens /post/[id] with a larger image, creator, token links, and the trade panel.
Explore has Trending, New, Top creators, and Top post coins. Rankings use on-chain market cap from the PONS curve when the RPC answers; otherwise the card still shows, with “—” for mcap until a quote lands.
Trading
Buys and sells go straight to that post’s PONS bonding curve — the curve address kin stored at launch, then re-checked against the factory so the wallet can only be asked to talk to the real curve.
- Buy — you spend ETH, the curve sends tokens to your wallet.
- Sell — you approve the curve, then sell tokens back for ETH.
Quotes are computed locally from curve reserves (PONS has no quote() on the curve). Confirmed means waitForTransactionReceipt returned success. Rejected, reverted, or RPC timeout is Failed.
On-chain vs off-chain
Locally, posts and profiles can live in data/store.json and images in public/uploads. On Vercel that disk is ephemeral, so production uses Railway Postgres (DATABASE_URL) for profiles and posts, and Pinata / IPFS for images.
Deploy
App on Vercel. Database on Railway. Images on Pinata. Copy the Railway public Postgres URL — not the*.railway.internal host, which Vercel cannot reach.
- Create a Postgres service on Railway and copy the public
DATABASE_URL. - Get a Pinata JWT so post images persist (Vercel has no lasting disk).
- Push the repo to GitHub, import it in Vercel, framework Next.js.
- Set Vercel env vars:
DATABASE_URL,PINATA_JWT,NEXT_PUBLIC_SITE_URL(your https domain). OptionallyPINATA_GATEWAYandNEXT_PUBLIC_ROBINHOOD_RPC_URL. - Deploy. Tables are created on first request. Open the site, connect a wallet, post.
Contracts & fees
Robinhood Chain · PONS v2. Creator tax is 1% on curve trades. Protocol fees are whatever PONS already takes.