How DogecoinVM works

DogecoinVM is a Dogecoin-compatible chain running on Metal Blockchain, joined to Dogecoin by a one-for-one DOGE bridge. This page covers how DOGE moves, what it costs, and what you're trusting.

The chain

DogecoinVM uses Dogecoin's transaction format and script language, and Dogecoin Core 1.14's fee and dust rules, without SegWit. It runs as its own Layer 1 on Metal Blockchain, whose Snowman consensus makes a transaction final as soon as it is in a block, usually in under a second (the home page shows the live median). There are no reorganisations to wait out.

A key has the same address on Dogecoin and on DogecoinVM. The two balances are separate: coins on one network move to the other only through the bridge.

The bridge

Deposits: Dogecoin to DogecoinVM

Every wallet gets its own Dogecoin deposit address. Its script names your DogecoinVM address and is spendable only by the peg signers, so the bridge knows who to credit and nobody else can move the coins. Your wallet derives this address itself from the signers' public keys and refuses to show one that doesn't match. Once Dogecoin has confirmed it enough for its size (…), the same amount, less the bridge fee, is released to you on DogecoinVM from the peg reserve.

The web wallet and the Mac app can make the deposit for you from your Dogecoin balance. You can also send to your deposit address from any Dogecoin wallet or exchange.

Withdrawals: DogecoinVM to Dogecoin

A withdrawal sends DOGE back to the peg reserve with a note naming a Dogecoin address. Once it's final on DogecoinVM, the signers pay that address from the DOGE locked on Dogecoin, less the Dogecoin network fee.

Proof of reserves

Every DOGE on DogecoinVM is backed by DOGE locked on Dogecoin. The explorer lists every locked output, each linked to a public Dogecoin explorer, next to the amount circulating on DogecoinVM. The bridge refuses to move anything unless the locked DOGE covers what circulates plus what's pending.

Fees, limits and timings

Live from the bridge:

Confirmations before a deposit is credited
…. Each takes about a minute; smaller deposits carry less risk, so they wait less.
Bridge fee on each deposit
… DOGE
Dogecoin fee on each withdrawal
… DOGE
Smallest deposit
… DOGE
Largest deposit (alpha)
… DOGE; larger ones are held for a refund
Most DOGE on DogecoinVM in total (alpha)
… DOGE
Smallest withdrawal
… DOGE
Signers
…
Peg address on Dogecoin
…

Sending on DogecoinVM costs its relay minimum, 0.001 DOGE per kilobyte, about 0.00023 DOGE for a typical payment, and is usually final in under a second. A Dogecoin block comes about every minute.

That speed is measured live. For every payment sent through this site, the bridge times how long it takes from receiving the payment to accepting the block that holds it. On DogecoinVM, an accepted block is final. It checks four times a second, so a figure can be up to a quarter of a second slow, never fast. The home page shows the median of the last 50 payments, and /api/status reports the median, the 90th percentile and the latest (finality).

Where fees go

In short: fees on DogecoinVM go to its validators, and the withdrawal fee goes to Dogecoin's miners. The bridge keeps nothing.

FeeWhen you pay itHow muchWho gets it
Network feeAny payment on DogecoinVM0.001 DOGE per kB, usually about 0.00023 DOGEThe validator that built the block
Bridge feeEach deposit… DOGEThe validator that built the block (it's the fee of the transaction that credits you)
Withdrawal feeEach withdrawal… DOGEDogecoin's miners (it pays for the payout on Dogecoin)

With several validators, each sets its own fee address. Metal takes turns choosing which validator proposes each block, weighted by stake, and that validator collects the fees in it. So fees spread across validators roughly in proportion to their stake. DogecoinVM only makes a block when there are payments, so a validator's share also depends on traffic. Today there is one validator.

How DogecoinVM compares

DogecoinDogecoinVM
Fee for a paymentAbout 0.0023 DOGE at the recommended 0.01 DOGE per kB (typical)About 0.00023 DOGE at the 0.001 DOGE per kB relay minimum (typical)
Smallest payment0.001 DOGE; under 0.01 DOGE costs 0.01 DOGE more in fee (the dust rules)The same: DogecoinVM keeps Dogecoin's dust rules
Final afterA block about every minute, at random; each one makes a payment harder to reverse, so receivers wait for severalUsually under a second, and can't be reversed
SetupNoneNone to receive: the same address as on Dogecoin. DOGE comes over through the bridge first
Who holds the DOGEYouYou on DogecoinVM; the DOGE behind it is locked on Dogecoin under the peg signers (…)

Typical fees are for a payment spending one coin, with change, about 227 bytes; a payment spending more coins is larger and costs more. Some Dogecoin wallets pay more than the recommended rate.

No fee is destroyed or leaves the peg. Fees paid on DogecoinVM stay there as ordinary DOGE, backed by DOGE locked on Dogecoin like any other. The bridge's signers aren't paid from fees yet.

Trust and limits

Alpha, with real DOGE. The bridge is new and hasn't had an external audit, one operator holds all of its signing keys, and the chain has one validator. Keep amounts small. See the alpha terms.

Wallets

In the browser. The bridge page is a wallet: your key is made in the browser and never leaves it. Protect it with a passkey, for example one saved in 1Password, and opening the wallet takes the passkey. Passkey protection needs a passkey provider that supports the PRF extension; older security keys don't. Every coin a payment spends is checked against the raw transaction that created it, so the server can't inflate a fee. Before anything is signed, the wallet shows what the payment does (who's paid, the change back to you, a withdrawal's Dogecoin address, and the fee), read from the transaction itself, and signs only once you confirm.

On a Mac. The Mac app keeps the key encrypted to the Mac's Secure Enclave, shows every payment for review before Touch ID signs it, and updates itself.

Both wallets are open source: the web wallet is in the DogecoinVM repository (cmd/dogevm/web), and the Mac app in its own repository, where each release carries the DMG it was built into.

Whichever you use, back up your key. It's your wallet on both networks, and without it the DOGE can't be recovered.

For developers

The bridge serves a JSON API at this site, used by both wallets:

GET  /api/info                 network, fees, limits and signers
GET  /api/status               both chains' heights, sync, the peg audit
GET  /api/reserves             every locked output on Dogecoin
GET  /api/activity             recent deposits and withdrawals
GET  /api/address/{address}    DogecoinVM balance, outputs and history
GET  /api/tx/{txid}            a DogecoinVM transaction, described
GET  /api/block/{height|hash}  a DogecoinVM block
GET  /api/deposits/{address}   deposits for a DogecoinVM address
GET  /api/pegout/{txid}        a withdrawal's status
POST /api/deposit-address      {"address": …}: your deposit address
POST /api/tx                   {"hex": …}: broadcast on DogecoinVM
GET  /api/health               checks, for uptime monitors

The API reference has every endpoint with examples, the JSON-RPC, and a step-by-step guide to building a wallet. To read the chain without relying on this site, run your own DogecoinVM node.

The source, including the chain, the bridge, both wallets' code and the deployment scripts, is on GitHub.

Security

Please report vulnerabilities privately through GitHub's security advisories, not in a public issue.