Vaults

A vault is an on-chain address that holds your deposited DOGE. When you deposit, your coins go into the vault on L1 (Dogecoin). DogeVM credits you with an equal amount of vDOGE on the DogeVM layer. When you withdraw, your vDOGE is burned and your real DOGE comes out of the vault. Your L1 vault balance always equals your DogeVM balance — 1:1, verifiable by anyone at any time. There is no separate bridge or bridge contract: your DOGE stays in this vault on Dogecoin the whole time. DogeVM only watches the chain and credits vDOGE; you never “send DOGE across” anything.

Two Spending Paths

Every vault has two ways it can be spent: Normal path — you + DogeVM together for instant deposits and withdrawals; Escape path — you alone after a waiting period, for emergency exit even if DogeVM is offline. DogeVM cannot steal your funds (needs your key) and you cannot lose access (escape path is always available after the timelock).

Dogecoin Vault (P2PKH + CLTV)

Mainnet not yet live. Dogecoin vaults are planned. Testnet and regtest availability will be announced.
Dogecoin vaults use P2PKH with a CLTV escape: normal path is ProtocolKey + YourKey (2-of-2, instant); escape path is 20,160-block timelock + YourKey (unilateral, ~2 weeks).

Escape Hatch Waiting Period

ChainBlocksBlock TimeApproximate Time
Dogecoin20,160~1 min~2 weeks
The waiting period gives the protocol time to detect and dispute fraudulent state before funds leave. This is the same principle used by Lightning Network payment channels.

Deposit Flow

  1. Get your vault address (SDK or CLI: dogevm wallet vault-address --chain dogecoin).
  2. Send DOGE to that address.
  3. DogeVM detects your deposit after 3 confirmations (~3 min).
  4. vDOGE is credited to your DogeVM account.
Code examples will be added when testnet and regtest are available.

Withdrawal Flow

  1. Request withdrawal on DogeVM (vDOGE burned immediately).
  2. Withdrawal queued for batch processing.
  3. Protocol signs and broadcasts the Dogecoin L1 transaction.
  4. You receive DOGE at your specified address.
Code examples will be added when testnet and regtest are available.

Vault Address Derivation

Your vault address is derived from your public key combined with the protocol’s public key. This means:
  • Your vault address is unique to you — nobody else can deposit into your vault
  • The address is deterministic — you can always re-derive it from your key
  • The protocol can always verify which vault belongs to which user
Code examples will be added when testnet and regtest are available.

Security Properties

PropertyHow It’s Achieved
Protocol can’t stealVault requires both your key and protocol key
You can’t lose accessEscape hatch requires only your key (after timelock)
1:1 backing guaranteedL1 vault balance tracked continuously
No fractional reserveWithdrawals always backed by real L1 funds
TransparentAll vault operations are on-chain and publicly auditable
DogeVM does not hold your private key. You hold it. The vault is a 2-of-2 multisig — DogeVM holds one key, you hold the other. Neither party alone can move funds.