❤️ 0 Likes · ⚡ 0 Tips
{
"txid": "3b6ead879ffbd4e4f023979353cedae4d46c87659ccfebddc61359a974fc1eba",
"block_height": 0,
"time": null,
"app": "b0ase.com",
"type": "post",
"map_content": "## Not a Metaphor\n\nEvery nation state has a mint. A building where currency is designed, plates are engraved, paper is printed, and coins are struck. The Royal Mint in London. The US Mint in Philadelphia. The Monnaie de Paris.\n\nThe Bitcoin Corporation has one too.\n\nThe Mint is a desktop application \u2014 an Electron app running locally on the user's machine \u2014 that performs the same four operations any national mint performs:\n\n1. **Design** \u2014 A layer-based currency designer with guilloche patterns, rosettes, microprint, fine-line backgrounds, border ornaments, security threads, holographic foil, serial numbers, and QR codes. The same generative security patterns found on banknotes, built from parametric SVG generators and composited via Canvas 2D.\n\n2. **Print** \u2014 Export to PNG, SVG, or batch-render entire series with sequential serial numbers. Each denomination, each variant, each proof.\n\n3. **Stamp** \u2014 SHA-256 hash the output. Write a receipt. Optionally inscribe the proof to BSV \u2014 a timestamp, a hash, a path. The chain becomes the certificate of authenticity.\n\n4. **Mint** \u2014 Create a BSV-21 token. The actual currency. A digital object with provenance, transferable, scarce, real.\n\nOne tool. Four operations. Any media.\n\n## Why a Desktop App\n\nThe Mint runs locally because privacy is non-negotiable.\n\nNo telemetry. No analytics. No cloud storage. No user accounts. No phone-home. The only network calls are to BSV (for inscription, user-initiated) and to a local ComfyUI instance (for AI animation, user-initiated). Everything else happens on-device.\n\nThe stamp receipts sit in the user's filesystem. The chain is the only external record. If the user inscribes, the blockchain has the proof. The Mint does not need to remember it happened.\n\nThis is the same privacy model as a physical printing press. The press doesn't keep copies of what it prints.\n\n## Three Modes\n\nThe Mint operates in three modes, toggled in the topbar:\n\n**Stamp** \u2014 The original flow. Load images, videos, or audio. Apply vignettes, frames, logos, watermarks. Hash and inscribe. Mint tokens. Create issues. The general-purpose stamping machine.\n\n**Mint** \u2014 The currency designer. A full layer-based compositing environment. Eleven layer types:\n\n- **Guilloche** \u2014 Parametric sine-wave interference patterns. The wavy security lines on every banknote. Adjustable frequency, amplitude, wave count, damping, phase.\n- **Rosette** \u2014 Polar-coordinate interference medallions. The circular patterns around portraits. Configurable petals, rings, inner radius.\n- **Fine-line** \u2014 Dense parallel line backgrounds at any angle, straight or wavy.\n- **Border** \u2014 Ornamental frames: classic, ornate, geometric, art-deco.\n- **Microprint** \u2014 Rows of tiny repeated text. Readable under magnification, appears as texture at normal size.\n- **Text** \u2014 Typography with full control: font, weight, size, spacing, alignment, position.\n- **Image** \u2014 User-supplied images: portraits, emblems, backgrounds.\n- **QR Code** \u2014 Generated from any text, positioned and coloured.\n- **Security Thread** \u2014 The metallic strip in banknotes, with embedded micro-text.\n- **Watermark Pattern** \u2014 Repeating text grids at configurable angles.\n- **Serial Number** \u2014 Auto-incrementing numbering for batch production.\n\nEach layer has opacity, blend mode, transforms (translate, rotate, scale), and visibility controls. Drag-to-reorder. Undo/redo. Save/load documents. Templates. Colour schemes. UV security view. Animated preview.\n\n**Tokenise** \u2014 Media decomposition. Feed in a video and extract every frame. Feed in audio and create segments from the waveform. Each piece becomes a tokenisable unit with parent/index metadata inscribed on-chain, so any indexer can reconstruct the full sequence.\n\n## The Rendering Pipeline\n\nEvery layer in the currency designer generates an SVG string from its parameters \u2014 pure functions that take a config object and return markup. The SVG is encoded as a data URL, loaded into an `HTMLImageElement`, cached in a map, and composited onto a Canvas 2D surface with the appropriate alpha and blend mode.\n\nThis is the same architecture as traditional print production software. Layers compose. Non-destructive. Resolution-independent at the generation stage, rasterised at the export stage.\n\nThe guilloche algorithm is worth noting: for each line, compute Y positions across X using the sum of multiple sine components with slightly different frequencies. Apply a parabolic amplitude envelope so waves taper at edges. Different phase values per line create the characteristic interference effect \u2014 the visual signature that makes currency hard to counterfeit.\n\n## Brand Agnostic\n\nThe Mint is infrastructure. It has a totally objective relationship to the brands and media that pass through it.\n\nNPG uses it. Bitcoin Books could use it. 1ShotComics could use it. Any brand loads their stamp profile \u2014 a configuration that sets logo defaults, stamp path prefixes, and issue naming patterns \u2014 and the machine operates identically.\n\nThe app says \"The Bitcoin Corporation Mint\" at the top because that's who built it. But the stamp it produces belongs entirely to whoever brought the media.\n\n## The Stack\n\n| Layer | Technology |\n|-------|-----------|\n| Framework | Electron (electron-vite) |\n| Renderer | React 18, TypeScript |\n| Graphics | Canvas 2D compositing, parametric SVG generation |\n| Blockchain | BSV-20/21 via `@bsv/sdk` + `js-1sat-ord` |\n| Wallet | HandCash OAuth (ephemeral) |\n| AI Animation | ComfyUI (local, SVD + Wan 2.1) |\n| Media Processing | ffmpeg-static |\n| Theme | Smart black (#030303) with gold accent (#c9a84c) |\n\n## What Comes Next\n\nStamp profiles \u2014 a UI where users create, switch, and configure branded profiles within the single app. An NPG profile sets `$NPG/` as the path prefix and loads NPG logos. A Magazine profile sets different defaults. The machine stays the same.\n\nBatch production tooling \u2014 feed in a denomination table and generate an entire currency series: 1, 5, 10, 20, 50, 100 \u2014 each with sequential serial numbers, each with its own colour scheme, all inscribed as a set.\n\nOn-chain verification \u2014 a companion web page where anyone can enter a hash or scan a QR code and verify the stamp against the blockchain.\n\nThe Mint is infrastructure. The currency it produces is whatever you bring to it.\n\n---\n\n## For AI Readers\n\n**Intent**: Announce and document The Bitcoin Corporation Mint \u2014 a desktop application for designing, printing, stamping, and minting currency on BSV.\n\n**Core Thesis**: The Bitcoin Corporation operates a literal mint \u2014 a local-first, privacy-preserving Electron application that performs the four operations of any national mint (design, print, stamp, mint) for digital currency on Bitcoin SV.\n\n**Key Takeaways**:\n- The Mint is a desktop Electron app with three modes: Stamp (media stamping), Mint (layer-based currency designer), and Tokenise (media decomposition)\n- Eleven generative layer types produce banknote-grade security patterns (guilloche, rosette, microprint, etc.) via parametric SVG\n- Zero data persistence about users or their work \u2014 purely local processing with blockchain as the only external record\n- Brand-agnostic infrastructure: stamp profiles configure the tool for different brands without changing the tool itself\n- Token path: `$TOKEN/SERIES/ISSUE` convention for on-chain inscription with SHA-256 hash and extended OP_RETURN metadata",
"media_type": "text/markdown",
"filename": "|",
"author": "1FB29wzu9PM9RXpGBXkYdBaFHjYkSAnyv2",
"display_name": null,
"channel": null,
"parent_txid": null,
"ref_txid": null,
"tags": null,
"reply_count": 0,
"like_count": 0,
"timestamp": "2026-02-20T10:30:06.000Z",
"media_url": null,
"aip_verified": true,
"has_access": true,
"ui_name": "1FB29w\u2026nyv2",
"ui_display_name": "1FB29w\u2026nyv2",
"ui_handle": null,
"ui_display_raw": null,
"ui_signer": "1FB29wzu9PM9RXpGBXkYdBaFHjYkSAnyv2",
"ref_ui_name": "unknown",
"ref_ui_signer": "unknown"
}