Onchain publishing platform pioneering Writing NFTs, crowdfunds, splits, and wallet-native subscriptions on Optimism with Arweave-permanent storage. As of November 2025 Mirror has been absorbed by Paragraph; mirror.xyz redirects to paragraph.com and all posts/subscribers were migrated, so new builds should target the Paragraph SDK while existing Mirror content remains addressable on Arweave.
- 01reading legacy Mirror entries archived on Arweave
- 02Writing NFT collections (mint-as-you-write)
- 03wallet-native newsletter subscriptions
- 04crowdfunds + splits primitives
- 05permanent onchain publishing archives
- pnpm add @paragraph-com/sdk # Mirror migrated to Paragraph in Nov 2025 — use Paragraph SDK for new work
- pnpm add arweave # for reading legacy Mirror entries directly from Arweave
| Variable | Scope | Description |
|---|---|---|
| PARAGRAPH_API_KEY | Server | Paragraph API key (Mirror's successor platform). Server-only — required for authenticated writes/migrated content. |
| NEXT_PUBLIC_MIRROR_ARWEAVE_GATEWAY | Client | Arweave gateway used to fetch legacy Mirror entry transactions (default https://arweave.net). |
Treat Mirror as a legacy/archive integration: as of Nov 2025 mirror.xyz redirects to paragraph.com and the Mirror SDK is no longer maintained. For new publishing, use `@paragraph-com/sdk` (`new ParagraphAPI({ apiKey })`, then `client.posts.list()` / `client.posts.create()`). To resolve a legacy Mirror entry, query Arweave with the entry's transaction id (`arweave.transactions.getData(txId, { decode: true, string: true })`) and parse the JSON body — content remains permanently addressable even though the editor is gone. Wallet-native subscriptions and Writing NFT contracts on Optimism are still readable onchain via their original ABIs.
- ⚑Mirror was deprecated and merged into Paragraph in November 2025 — the editor is read-only and mirror.xyz redirects to paragraph.com. Do not architect new product around Mirror APIs; target Paragraph instead.
- ⚑Onchain vs offchain content: Mirror entries live on Arweave (permanent), but the index/feeds were Mirror-hosted and have been migrated — fetch by Arweave tx id, not by Mirror slug, for durable reads.
- ⚑Writing NFTs and Subscribe-to-Mint contracts on Optimism still work, but the publishing UX is gone — you would have to call the contracts directly to mint new editions.
- ⚑Splits and crowdfund contracts are independent primitives that survived the migration; treat them as standalone Optimism contracts rather than 'Mirror' features.
- ⚑Content moderation surface: Arweave is permanent and uncensorable, so takedowns are impossible — gate any UGC frontend with your own block/hide list.
- ⚑Subscriber lists migrated to Paragraph and are accessed there — there is no longer a 'Mirror' subscriber API to call.