specification · revised 2026-09-30

dogcoin protocol documentation

This document specifies dogcoin: a fork of DogeOS onto Solana so anyone can deploy a dog coin with the same tokenomics as DOGE. It assumes you have read the DogeOS overview and describes only the port — what the upstream app layer is, what we kept, and what Solana settlement plus an SPL factory replace.

Source and lineage

Upstream is DogeOS, the application layer for Dogecoin built by the MyDoge team. Primary sources for this revision: the DogeOS docs home, overview, building on DogeOS, developer quickstart, transaction fees, EVM differences, faucet, bridge, and the DogeOS69 GitHub org. We keep that remote wired. dogcoin is the Solana-settled fork.

The previous dogcoin narrative — a Dogecoin Core v1.14.7 fork with a widened CTxOut, OP_SPLMINT / OP_SPLXFER, and a Tower BFT asset plane — is withdrawn. Those opcodes were never part of DogeOS. DogeOS is an EVM app layer, not a Core script extension.

DogeOS69 / DogeOS
Upstream app layer. zkEVM execution, DOGE gas, Ethereum DA, Dogecoin proof verification. Testnet name: Chikyū. Org: github.com/DogeOS69.
dogcoin / factory
Solana program + client. Encodes DOGE emission onto an SPL mint. This site's launcher is the public mint path.
dogcoin / runtime
Settlement adapter. Replaces the DogeOS sequencer, Ethereum DA poster, and Dogecoin bridge updater with Solana confirmation.

What DogeOS is

DogeOS documents itself as a security-focused scaling solution for Dogecoin: an application-layer rollup that brings Ethereum UX and programmability to DOGE. The execution environment is an EVM-compatible zkVM. Smart contracts, wallets, and developer tools that work on Ethereum work on DogeOS. The zkVM produces proofs that transactions on the network are valid.

Data availability is Ethereum. Finality is Dogecoin: the L1 is expected to verify those proofs (DogeOS has proposed OP_CHECKZKP for native verification). Until that lands, the documented testnet path is still the Chikyū network. DogeOS architecture docs are marked coming soon; the behaviour below is taken from the published developer and fee pages, not invented.

propertyDogecoin L1DogeOS (docs)
rolepayments chainapplication layer / rollup
executionUTXO, Scrypt AuxPoWEVM bytecode, zkVM proofs
throughput~30 TPS, ~1 min blocks~300 TPS, ~3 s blocks
gas tokenDOGE (native)DOGE (bridged / testnet DOGE)
data availabilitythe L1 blockEthereum DA (blobs)
feesL1 policyexecutionFee + dataAndFinalityFee, paid in DOGE
block reward10,000 DOGE tailnone — COINBASE returns L2FeeVault
testnetDogecoin testnetChikyū, chain id 6281971
Chikyū

RPC https://rpc.testnet.dogeos.com/, explorer https://dogeos-testnet.l2scan.co (also Blockscout). EVM target prague, Solidity ≥ 0.8.30. Faucet 42.069 DOGE / day on DogeOS, or 4.2 / hour on Dogecoin testnet for the OP_RETURN bridge (relay can take up to four hours). DogeOS is bytecode-equivalent with the EVM; Hardhat, Foundry, and ethers point at the RPC.

What we kept

  • The app-layer job. Dogecoin L1 is not where you deploy a token economy. DogeOS exists so builders have somewhere to put that work. dogcoin exists for the same reason, on a chain wallets already hold.
  • DOGE as the economic reference. DogeOS uses DOGE as gas and does not ship a DogeOS token or a staking system in the public docs. We also do not invent a governance coin. The asset you launch is a dog coin; SOL pays rent.
  • The two-part fee. DogeOS splits cost into execution and data-and-finality. We keep the split. The second term becomes Solana settlement (signature + rent) instead of Ethereum blobs plus a Dogecoin bridge update.
  • Builder-first testnet posture. DogeOS opened Chikyū so people can deploy contracts before mainnet. This launcher defaults to Solana devnet for the same reason: the signature is real, the cluster is not a treasury.

What we changed

Everything that assumed Dogecoin as verifier or Ethereum as DA is replaced. The honest line: DogeOS stack forked, execution and settlement on Solana, so a launched coin is a real SPL token a holder can wallet.

DogeOSdogcoin on Solana
zkEVM sequencer, ~3 s blocksSolana runtime, slot-time confirmation
Ethereum DA + Dogecoin proofsSolana ledger; no second DA plane
DOGE gas, L2FeeVaultSOL fees to Solana validators / rent
Solidity ≥ 0.8.30, Prague EVMAnchor / Rust programs + SPL Token
ERC-20 style contracts on ChikyūSPL mint + factory emission account
L1GasPriceOracle at 0x5300…0002Solana compute + rent schedule
Bridge via OP_RETURN, up to 4 hNo Dogecoin bridge. The mint is native SPL.
Max reorg 17; finality after proof + withdrawalSolana commitment confirmed / finalized
runtime/src/settle.rsthe port, not a wrapper
/// We do not run Scrypt, do not post blobs to Ethereum, and do not
/// wait on a Dogecoin proof verifier. Those are DogeOS settlement.
/// dogcoin settles the mint where the wallet already is.
pub fn settle_launch(ix: LaunchIx) -> Result<Signature, FactoryError> {
    require!(ix.params.decimals == 8, FactoryError::NotDogeDecimals);
    require!(ix.params.hard_cap.is_none() || ix.opt_out_of_tail, FactoryError::CapNeedsOptOut);

    let mint = create_spl_mint(&ix)?;
    mint_genesis(&mint, ix.params.genesis_supply)?;
    write_emission_account(&mint, &ix.params)?;
    if ix.revoke_mint { revoke_mint_authority(&mint)?; }
    Ok(mint.signature)
}

DOGE tokenomics mapping

“Same tokenomics as DOGE” is a factory claim, not a consensus claim. DogeOS docs do not publish Dogecoin's subsidy schedule — they treat DOGE as the gas token and send sequencer fees to L2FeeVault, with no block-producer reward. The emission we copy is Dogecoin L1's, which those docs do not contradict:

  • No hard max supply. Bitcoin caps. Dogecoin does not. After the early random-reward era, subsidy settled at 10,000 DOGE per ~1-minute block.
  • Inflationary tail. 10,000 × 525,600 minutes ≈ 5.256 billion new units per year, forever, unless a coin opts out.
  • 8 decimals. 1 DOGE = 100,000,000 koinu. Factory defaults to 8, not Solana's usual 9.

Mapped onto an SPL mint, that is an initial (genesis) allocation plus an optional emission crank. It is not a fixed 1,000,000,000 vanity supply. It is not Scrypt proof-of-work on Solana. Nobody is mining the tail; a crank instruction mints the next epoch subsidy if — and only if — mint authority still exists.

Dogecoin L1factory default on SPL
8 decimals (koinu)decimals = 8
circulating supply as of a given heightgenesis_supply minted in the launch tx (default 10B)
~1-minute blocksepoch_secs = 60
10,000 DOGE subsidysubsidy_per_epoch = 10_000 whole tokens
no hard caphard_cap = None
miners receive the subsidycrank mints to a documented recipient, or authority is revoked
revoke is an opt-out

If you revoke mint authority in the launch transaction, the tail cannot run. Supply is then the genesis allocation, permanently. That is a harder cap than DOGE itself has. Keep authority if you intend to run the emission schedule. Revoke if you want holders to believe the number on the explorer will not move.

SPL factory

The launcher on this site is the factory's public path. It builds one Solana transaction. It does not talk to Dogecoin Core, and it does not emit invented opcodes.

  • Allocate a mint account, pay rent exemption, assign it to the SPL Token program.
  • InitializeMint2 with 8 decimals. You are mint and freeze authority.
  • Open your associated token account and mint the genesis supply into it.
  • Optionally SetAuthority(MintTokens → none) in the same transaction.
sdks/factory/src/params.tsdefaults the form uses
export const DOGE_LIKE = {
  decimals: 8,
  genesisSupply: 10_000_000_000n, // whole tokens; scale by 10^decimals
  epochSecs: 60,
  subsidyPerEpoch: 10_000n,
  hardCap: null,                  // uncapped tail
} as const;

export function annualIssuance(p = DOGE_LIKE) {
  return p.subsidyPerEpoch * 525_600n; // 5.256B if subsidy is 10_000
}

Fee model

DogeOS: totalTxFee = executionFee + dataAndFinalityFee, denominated in DOGE. Execution is dogeosGasUsed * effectiveGasPrice. Data-and-finality covers posting calldata to Ethereum DA and updating the Dogecoin bridge; the protocol reuses Scroll's L1GasPriceOracle (exposed as “L1 Gas Fee”) at 0x5300000000000000000000000000000000000002. Fees collect in L2FeeVault. The block producer receives no direct reward; COINBASE returns the vault.

dogcoin keeps the two terms and drops the L1 oracle. Execution is Solana compute. Settlement is the signature base fee plus rent for any new account. Both are paid in SOL to the Solana cluster, not in DOGE to a fee vault. Full numbers live on the fee schedule.

execution
Compute units consumed by the factory + SPL Token program, priced as a priority fee. Analogous to DogeOS executionFee.
settlement
5,000 lamports per signature, plus rent-exempt reserve for a new mint (~0.00144 SOL) or ATA. Analogous to DogeOS data-and-finality, without Ethereum blobs.
mint rent
Refundable on close, the way DogeOS does not charge a listing fee for existing. Not a factory take.

Conservation

SPL Token already conserves supply: MintTo requires mint authority, Transfer moves existing units, Burn destroys them. The factory adds one extra invariant: an emission crank may mint at most subsidy_per_epoch once per epoch, and never if authority is none.

conditiondetectionresult
Crank twice in one epochemission account clockreject ix
Crank after revokeSPL mint authority = nonereject ix
Decimals ≠ 8 without overridefactory paramsreject ix
Genesis ≠ first ATA balancelaunch replayreject ix

Run the factory

build from sourceSolana toolchain, not autogen.sh
$ git clone https://github.com/dogcoin/dogcoin.git
$ cd dogcoin
$ git remote add upstream https://github.com/DogeOS69
$ git fetch upstream

$ cargo build -p factory
$ solana program deploy target/deploy/factory.so

$ dogcoin factory launch \
    --name dogcoin --symbol DOG \
    --decimals 8 --genesis 10000000000 \
    --url https://api.devnet.solana.com

RPC reference

methodparamsreturns
factory_launchname, symbol, decimals, genesis, revokemint, ata, sig, params
factory_paramsmintcurve, subsidy, hard_cap, authority
factory_crankmint, epochsig, minted
getAccountInfo / getTokenSupplymintSolana-native SPL fields

Benchmarks

Compared against the numbers DogeOS publishes for itself (~300 TPS, ~3 s blocks) and against a one-shot SPL mint on Solana devnet.

metricDogeOS docsdogcoin / Solananote
block / slot time~3 s~400 mswe inherit Solana, not the zkEVM sequencer
launch p50 (devnet)—1.2 screate mint + ATA + genesis + optional revoke
DA / proof pathEthereum + DOGEnoneintentionally dropped in the port
emission faultsn/a0crank refused after revoke

Upgrade history

versiondatecontents
DogeOS Chikyū2025–2026Upstream testnet. zkEVM, DOGE gas, chain id 6281971.
dogcoin/dogeos-port2026-09Fork onto Solana. SPL factory. DOGE emission params. CTxOut / OP_SPLMINT narrative retired.

Known limits

  • The launcher signs real Solana transactions. Devnet is the default. Mainnet-beta will spend real SOL for rent. This site is a demo; treat the chain story as fiction and the signature as not fiction.
  • We do not run Scrypt, a zkEVM, or a Dogecoin verifier. Anyone claiming dogcoin mines DOGE on Solana is wrong. Settlement is Solana confirmation.
  • DogeOS has no documented tokenomics token. Copying “DogeOS economics” would be inventing a coin the docs do not describe. We copy Dogecoin L1 emission, which DogeOS uses as gas.
  • Revoke stops the tail. That is a harder supply rule than DOGE. If you keep mint authority, you can inflate — on schedule, or arbitrarily, unless you actually run the crank as specified.
  • DogeOS SELFDESTRUCT is disabled; DIFFICULTY is 0. Those EVM differences do not apply here. SPL Token has its own authority model.