dogefundme
v0.1.5
Published
Send, request and check Dogecoin from your terminal. Resolves @handles through public DNS, renders a scannable QR, and watches the chain. Holds no keys and never moves money — your own wallet signs.
Downloads
926
Maintainers
Readme
dogefundme
Send, request and check Dogecoin from your terminal.
npx dogefundme @vince 4.2Resolves the handle through public DNS, draws a scannable QR in your terminal, then watches the chain and tells you when it lands.
No install. No account. No login. No keys, ever.
The three commands
npx dogefundme @vince 4.2 # send — QR you scan with your own wallet
npx dogefundme ask 4.2 --to @vince # request — QR you share with someone else
npx dogefundme @vince inbox # check — what has arrivedA raw D… address works anywhere a handle does.
What it does not do
It never holds a key, a seed phrase, or a session, and it never moves money. It resolves an address, builds a BIP-21 URI, renders it as a QR, and reads the public ledger. Your own wallet signs.
That is a deliberate ceiling. npx runs whatever version is current in the registry the moment you invoke it — a key handed to npx <anything> is handed to every future version of that package, including ones the author never wrote. So there is nothing here to hand over, and nothing here to steal.
The upside: no custody, no account, nothing to breach, and nothing to trust.
Handles live in DNS, not in a database
vince.user._doge-payment.dogefundme.com TXT "dogecoin:D8x7f…3kq"The shape is borrowed from BIP-353, which did this for Bitcoin.
DNS rather than a database, on purpose. A database mapping is a secret one operator controls — and whoever controls it controls where the money goes, silently. A DNS record is public: anyone can dig it, anyone can mirror it, and a change is visible to the world. It removes the operator as something you have to trust, rather than asking you to trust them more.
Publish your own:
npx dogefundme setup @vince D8x7f…3kqIt prints the exact record to add. Verify it from anywhere:
dig +short TXT vince.user._doge-payment.dogefundme.comOn Windows, dig is not installed. Use one of:
Resolve-DnsName -Type TXT vince.user._doge-payment.dogefundme.comnslookup -type=TXT vince.user._doge-payment.dogefundme.comOne honest limitation: BIP-353 requires DNSSEC validation to the root, and Node's stub resolver does not validate DNSSEC. So this trusts the resolver it was handed. That is why the resolved address is always printed before the QR — the human is the last check, and Dogecoin is irreversible.
Everything else
--for "note" attach a message to the payment
--to @handle who gets paid (ask)
--domain example.com resolve handles at another domain
--dns cloudflare resolve over DNS-over-HTTPS (cloudflare | google | an IP)
bypasses a stale system cache and reports the TTL
--limit 20 how many inbox entries
--no-watch skip the chain watch
--json machine-readable, no QRNO_COLOR=1 is respected.
Notes
Terminal size matters. The QR is drawn with half-block glyphs (▀▄█), packing two module rows into one character cell — that cancels the terminal's roughly 2:1 cell aspect and makes the modules square, which is why it scans at all. Drawn one module per cell it would be 90+ columns wide and distorted.
Error correction is chosen adaptively: the strongest level that still fits your window. A QR that overflows the terminal scrolls, and a QR split across a scroll boundary scans at 0% — so fitting beats robustness here. If even the lowest level will not fit, it says so and gives you the URI instead of drawing something unscannable.
Colour is forced to black-on-white. An unforced code inherits your theme, and on a dark terminal it renders inverted — many phone scanners will not read an inverted code.
Addresses are checksum-validated, not pattern-matched. A single mistyped character is caught. A Bitcoin, Ethereum or Litecoin address is recognised and rejected with an explanation rather than a shrug.
inbox reads the public ledger, so it needs no permission — and so does everyone else. Anyone can run it against any address, including yours. That is how public chains work; making it one command just makes it obvious.
Install
You do not have to. npx dogefundme … fetches and runs it.
If you want it permanently:
npm install -g dogefundmeRequires Node 18+. Zero runtime dependencies.
MIT © F-Keys · bundled QR encoder © Kazuhiko Arase (MIT)
Part of dogefundme.com.
