IQ.Wiki
The world's largest blockchain encyclopedia, anchored on-chain.

iq.wikiNext.js 15 · React 19 · GraphQL · TanStack Query · wagmi
01 · brief
Thousands of articles in three languages, each stored as JSON on IPFS with its hash committed to Polygon. The problem is encyclopedia-grade SEO on per-request rendering: three locales that can never fork, wallet publishing ordinary people can use, and search that answers before you finish typing.
Architecture, and why
Tag-based caching over pre-building
An on-chain revision fires a webhook that purges exactly that wiki, its sub-pages and the homepage, in all three locales.
Parallelize, then degrade gracefully
Token stats, NFTs, ratings and explorers fan out under their own Suspense boundaries, so a slow subsystem costs one widget.
Typed GraphQL, end to end
Queries type-check live against the introspected schema with no codegen, and every request aborts at ten seconds.
One auth hook, two worlds
RainbowKit for crypto natives, Web3Auth social login for everyone else, unified behind a single useAuth().
A catch-all route instead of a redirect table
Unknown slugs resolve at request time to a wiki, a wallet address or a 404, replacing an unmaintainable redirect map.
Engineering highlights
Search that answers first
Ghost-text autocomplete runs off a cached Gemini call while an AI panel streams its summary, fenced against stale streams.
Gasless on-chain publishing
Pin, sign EIP-712, relay to Polygon, await receipt, poll ingestion. The contributor anchors provenance without holding gas.
An agent takes the suggestions
Wiki suggestions run through a tool-calling agent that checks the catalog for duplicates and scores crypto-relevance.
SEO as a system
Typed JSON-LD graphs, per-locale canonicals, production-gated indexing and a proxied backend sitemap.
A caching rule learned in production
A cached function must throw on failure, or a swallowed error gets memoized as good data for the whole window.
Spot the Logo, an arcade game in the footer
Logos pixelate and resolve on canvas, the soundtrack is synthesized in Web Audio, and it all loads only on intent.
04 · impact
- 3
- languages served from one routing layer
- 72k
- lines of TypeScript
- Top 3
- contributor on a 5,000-commit codebase