Skip to content

FINE KIT / BUILDER GUIDE

Bring your community.
Reuse the essentials.

FINE Kit’s first module is a wallet-based event register with one-use check-in. It works for a community call, workshop or discussion before an Ember Council proposal.

Use the hosted register

  1. Open FINE Kit and sign in with a compatible Solana wallet, including MetaMask, Phantom or Solflare.
  2. Create an event with a start, end and capacity. The hosted beta accepts any verified wallet. Holder-only rules can be enabled in your own deployment after configuring and verifying a Solana RPC.
  3. Copy the event link into your own community. Attendees sign in and reserve a place.
  4. At the event, ask for the attendee’s pass code. The organizer checks it in once from the event page.

These are community-created events. FINE and Ember do not verify an organizer’s identity or endorse their event. The organizer’s full wallet and token mint are displayed so members can compare them with trusted community sources.

Reuse the module in your own app

The source bundle contains the event UI, API, validation, Solana verification, database migration and integration notes. It is a reference module for React, TypeScript and Cloudflare D1, not a one-click deployment or an audited authentication SDK.

Download source module (.zip)

Run your own database and use your own origin-bound sessions. Never copy live cookies, sessions or attendee data. Keep registration and check-in as atomic writes and verify permissions on the server.

Module boundaries

  • kit.ts: event validation and exact token amount conversion.
  • kit-chain.ts: fixed Ember registry reads and finalized Solana wallet balances.
  • kit-store.ts: atomic capacity, unique wallet registration and one-use check-in.
  • route.ts: signed-message login, separate Kit sessions, CSRF and organizer permissions.
  • kit.tsx: create, register, share and check-in interface.

Holder-only events need a configured RPC

The source includes a token-balance rule. It is disabled on deployments without a configured Solana RPC. Set KIT_SOLANA_RPC_URL as a server secret in your own deployment, verify mainnet and test mint and owner-balance queries before offering holder-only events. Never put the key in client code.

Trust boundaries

A signature proves wallet control, not a unique human. A holding check is taken at registration and is not repeated at check-in. Moving tokens between wallets can satisfy multiple registrations. Do not use this module as a voting, anti-Sybil, prize or paid-access system.

Registry membership is not an endorsement. Mainnet balances come from the configured Solana RPC. If either source is unavailable, holder-restricted registration fails closed. Already issued passes remain visible.

Event changes are deliberately limited to cancellation. Public fields and immutable eligibility rules remain visible to attendees. One-use check-in operates only during the event window.

Keep Council decisions on Ember

Use Kit to organize the discussion. Proposal eligibility, quorum, signatures and official votes belong to Ember Council and can change independently of this tool.

Open Ember Council ↗

Official Ember API documentation ↗