Little ghosts for Bitcoin Silent Payments

Give your address
some spirit.

A familiar face for a very long address. Make a SPirit and a payment QR.

Paste the complete public address beginning sp1 or tsp1. Everything stays in this browser.

No account. No uploads. No address lookup.

Say hello
Yours is waiting.

Paste an address to discover its character.

PNG for images and sharing. SVG for scalable artwork.

An example ghost is shown above.

Quiet payments.
Quite a personality.

Your address’s scan key shapes the character: its face, colour, outline, and signature accessory. Wallet labels that share that scan key add a small badge and trim variation, while keeping the same ghost.

Made from your address.
The same address and artwork version reproduce the same SPirit, wherever you generate it.

A complete payment QR.
The QR carries the complete address. Check it with your Silent Payments wallet before sharing or printing it.

A recognition aid.
Characters can look alike. Always check the address in your wallet. Shared appearances do not prove ownership.

A little ghost.
A small library.

Bring SPirits into your own app. The TypeScript core includes the artwork and renders self-contained SVG. Add the QR extension when you need payment codes.

Experimental v0. Artwork and mappings may change before v1. Code: MIT. Original artwork: CC0.

Installation, npm packages and release assets are covered in the usage guide.

import { createSpirit } from '@remcoros/spirits';
import { createSpiritQr } from '@remcoros/spirits-qr';

const { svg, recipe } = createSpirit(address);
const qr = createSpiritQr(address);

// Self-contained SVG. No asset server.
// Same key, same familiar character.