A browser extension that converts ARS, USD, EUR, and JPY prices to satoshis in real time on any website.
Satoshillo is a lightweight browser extension that instantly converts fiat prices you encounter while browsing into Bitcoin satoshis. It detects prices on any webpage — whether they're written as $1.500, €2.4B, USD/JPY 158.48, or 50 mil millones de pesos — and shows you the equivalent in sats with a single click.
The goal is to make Bitcoin the default unit of account in your daily browsing, helping you think in sats rather than depreciating fiat currencies.
- Detects prices on any webpage (with
$/€symbols, currency words, or magnitudes like76M,2.4B) - Word magnitudes:
1 million,50 billion,1 trillion - Forex pair detection:
USD/JPY 158.48,EUR/USD 1.0850 - Floating menu with live conversion to sats / k sats / M sats / BTC
- Deterministic currency inference from the local sentence (ARS / USD / EUR / JPY)
- Localized number parsing (respects
.,separators based on page language) - One DOM extraction per semantic block; no periodic rescanning or site-specific rules
- Toggle per site: click the icon to disable on any domain (badge shows "OFF")
- Priority-based real-rate routes: Yadio, Kraken + ExchangeRate-API, then Binance + FXRatesAPI
- One complete source per update; no averaging and no fixed fiat multipliers
- Local-only page analysis with no browsing data or detected text sent to external services
- Automated parser, fallback selection, timeout, and cache-lifecycle tests with Node's built-in test runner
- Pixel-art Satoshi symbol logo
Satoshillo uses one deterministic pipeline instead of page-specific heuristics:
- Extract visible text once from each semantic block and preserve DOM offsets.
- Scan numeric tokens and segment the text into sentences and clauses with
Intl.Segmenter. - Classify each number from structural monetary evidence: symbols/currency words, valid forex syntax, or a magnitude connected to a monetary sentence.
- Check adjacent sentences only when the number is isolated. Ambiguous values are ignored.
- Map accepted numbers back to their exact text nodes, including layouts split across multiple spans.
Dynamic content is handled by a debounced MutationObserver. The observer is disconnected while Satoshillo updates the DOM, preventing self-triggered scan loops.
Every update uses one complete source for all supported currencies (ARS, USD, EUR, JPY), following this priority:
- Yadio direct BTC/fiat prices (primary).
- Kraken BTC/USD combined with live ExchangeRate-API rates (first fallback).
- Binance BTC/USDT combined with live FXRatesAPI rates (second fallback).
Sources are never averaged or mixed: the first route returning all four valid rates wins. No fixed fiat multipliers are used. Rates are cached globally, persisted across browser sessions, refreshed every minute, and served as provisional values if the network is temporarily unavailable.
Price detection runs locally in the browser. Satoshillo does not transmit page content, browsing history, selections, or detected prices. Network access is restricted to the exchange-rate providers listed above, and form fields plus editable controls are excluded from scanning. See the full Privacy Policy.
- Download the latest release zip for your browser from Releases
- Unzip the file
- Follow the instructions for your browser below
git clone https://github.com/Fierillo/satoshillo.git
cd satoshillo
node build.jsRun the automated tests with:
npm testThis generates browser-specific builds in dist/:
dist/
├── chrome/ # Chrome, Brave
├── edge/ # Microsoft Edge
├── brave/ # Brave
└── firefox/ # Firefox
- Open
chrome://extensions/(oredge://extensions/) - Enable Developer mode
- Click Load unpacked
- Select
dist/chrome/(ordist/edge/,dist/brave/)
- Open
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on
- Select
dist/firefox/manifest.json