How it fits together
The orbit
How the wallet, indexer, explorer, swap, bridge and docs actually talk to each other.
Doge Soft isn't one app with a database. It's a small constellation of independent services that all agree on one thing: Dogecoin Layer 1 is the source of truth. Nothing here custodies your coins on your behalf by default — the wallet signs, the chain settles, and everything else just reads.
The map
The orbit, each piece doing one job:
| Piece | Job | Talks to |
|---|---|---|
| Wallet | Holds keys, signs everything, injects window.dogesoft |
Dogecoin L1 directly, plus every service below |
| Indexer | Watches every block, tracks DRC-20 balances & inscriptions | Dogecoin L1 → feeds Explorer, Swap, Bridge |
| Explorer | Public read API over the indexer — transactions, balances, history | Indexer |
| Swap (AMM) | Quotes, pools and liquidity for DRC-20 ↔ DOGE | Indexer for deposits, on-chain pool state |
| Bridge | Locks on L1, mints wrapped coins on DogeOS L2 | Multi-attester contract on each side |
| Launch | Collection catalog, mint counter, members gates | Inscriber (LAUNCHPAD_*), Explorer, window.dogesoft |
| Pulse | Displays live price & momentum for DRC-20 Coins | Reads pool and bonding-curve pricing |
| 𝕏Đ Good | Tips, hire, rewards & marketplace on X | Chrome extension on x.com; wallet signs every payment |
The indexer is the spine
Almost everything downstream — Explorer balances, DRC-20 send verification, Swap's view of on-chain deposits — reads from one indexer that watches Dogecoin L1 block by block and tracks DRC-20 state (deploys, mints, transfers, current holders) alongside the raw UTXO set. Nothing above the indexer layer re-parses the chain itself; they all read the same source of truth, which is what keeps a balance you see in the wallet, in Explorer, and in Swap in agreement with each other.
How a send actually flows
Take the most common path — a user sends DRC-20 Coins from the wallet. It touches four of the pieces above, in order:
- The wallet builds a commit transaction (funds a P2SH output holding the inscription envelope) and a reveal transaction, and signs both with the user's key.
- The reveal transaction broadcasts to Dogecoin L1. Nothing moves yet — this step only inscribes intent.
- The indexer picks up the confirmed reveal, decodes the DRC-20 envelope, and marks it ready.
- A move-pipeline worker sees the confirmed, indexed reveal and broadcasts the final move transaction that actually reassigns the coin to the recipient.
The full walkthrough — including what's proven in production versus still being hardened — lives on the send pipeline page.
What Doge Soft never touches
Private keys are generated and stored on the user's device. The wallet signs the commit, reveal and move transactions locally, before any of them reach a server; the move-pipeline worker mentioned above is a reliable broadcaster and crash-recovery mechanism, not a signer — it never holds a key that can move a user's coins. The browser extension follows the same rule: it relays a signing request to a paired phone rather than holding a key itself. The one place a service-held key does authorize value movement on a user's behalf is the Bridge, where release is gated by several independent attester signatures rather than any single party — see the security model and Bridge pages.
If you're integrating from outside the wallet — a website, a bot, a game — you'll talk to Explorer for reads and the wallet provider for anything that needs a signature. You will not need to run your own indexer.