DogeOS is EVM-compatible, so your existing Solidity, Hardhat and Foundry workflow ports over with a config change. Two things will bite you if you skip ahead: SELFDESTRUCT is disabled and reverts the transaction, and three precompiles Ethereum supports are unsupported here. Both are documented below.
Everything on this page targets the Chikyū testnet, because that is the only DogeOS network that exists. There is no mainnet. A deployment here is a rehearsal — which is the point, since EVM compatibility means the work carries over when a mainnet arrives.
Network configuration
| Parameter | Value |
|---|---|
| Network name | DogeOS Chikyū Testnet |
| RPC URL | https://rpc.testnet.dogeos.com/ |
| Chain ID | 6281971 |
| Currency symbol | DOGE |
| Block explorer | https://dogeos-testnet.l2scan.co |
The explorer above is the one the developer docs use, and the one the verification API runs on. A second explorer exists at blockscout.testnet.dogeos.com (listed on Chainlist) — fine for browsing, but verify against l2scan.co. Note that Chainlist's entry for 6281971 publishes no RPC endpoint; take the RPC from the docs.
Prerequisites
- DOGE for gas. The docs are explicit: "DogeOS uses DOGE as its native currency, which will be needed to pay transaction fees." Get testnet DOGE from
https://faucet.testnet.dogeos.com— the documented rate is 42.069 per day, one claim per 24 hours. Setup walkthrough in the Chikyū testnet guide. - Solidity 0.8.30, with
pragueas your EVM target. Older compiler versions are not recommended by the docs.
Configure your tooling
Hardhat — add the network to hardhat.config.ts:
dogeosTestnet: {
url: "https://rpc.testnet.dogeos.com/" || "",
accounts:
process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
},
Foundry — pass the RPC on the command line:
forge create ... --rpc-url=https://rpc.testnet.dogeos.com/
ethers.js — point a provider at the RPC:
const provider = new ethers.providers.JsonRpcProvider(
"https://rpc.testnet.dogeos.com/"
);
Set your EVM target to prague in foundry.toml or the Hardhat Solidity settings before compiling. A contract compiled for a newer target than the chain supports will deploy and then fail at runtime in ways that are annoying to diagnose.
Deploy
- Fund the deployer address from the faucet and confirm the balance on the explorer.
- Compile against Solidity 0.8.30 with the
pragueEVM target. - Deploy —
npx hardhat run scripts/deploy.ts --network dogeosTestnet, orforge createwith the RPC flag above. - Confirm on the explorer at
https://dogeos-testnet.l2scan.co, checking that the contract address is populated and the creation transaction succeeded.
Verify your contract
Verification runs against the explorer's Blockscout-compatible API at https://dogeos-testnet.l2scan.co/api.
Hardhat:
npx hardhat verify --network dogeosTestnet <contract address> <space separated constructor parameters>
Foundry:
forge verify-contract <contract address> <contract name> \
--rpc-url https://rpc.testnet.dogeos.com \
--chain-id 6281971 \
--watch \
--skip-is-verified-check \
--verifier-url https://dogeos-testnet.l2scan.co/api/ \
--verifier blockscout
The --verifier blockscout flag matters — the explorer is Blockscout-based, and Etherscan-style verification will not work against it.
Differences from Ethereum that will break things
These are documented, and they are the reason a contract that works on Ethereum may not work here.
Opcodes
SELFDESTRUCTis disabled. Per the docs: "If the opcode is encountered, the transaction will be reverted." Any contract with a self-destruct path — including some proxy and factory patterns — needs rewriting.DIFFICULTY/PREVRANDAOreturns0. Do not use it as a randomness source. You should not have been doing that on Ethereum either, but on DogeOS it fails deterministically rather than weakly.COINBASEreturns the pre-deployed fee vault contract address, not a block proposer.
Precompiles
- Unsupported and reverting on call: RIPEMD-160 (
0x3), blake2f (0x9), point evaluation (0x0a). modexpis limited to inputs of 32 bytes or less (u256). Ethereum accepts larger. Cryptographic libraries that assume full-width modexp will fail.- Supported:
ecRecover,ecAdd,ecMul,ecPairing,identity.
Not yet supported
- EIP-4844 opcodes (
BLOBHASH,BLOBBASEFEE) - EIP-4788 (beacon chain block root access)
Chain behaviour
- Maximum reorg depth is set to 17 blocks. Factor that into confirmation logic rather than copying an Ethereum-tuned value.
How fees work
Fees are denominated in DOGE and have two components, per the docs:
totalTxFee = executionFee + dataAndFinalityFee
executionFee = dogeosGasUsed * effectiveGasPrice
The execution fee is the familiar Ethereum model applied to the L2 sequencer. The data and finality fee is the part that is specific to DogeOS: every transaction's calldata is committed to Ethereum for data availability and carries a share of the protocol cost to finalize on Dogecoin. It is calculated from calldata size together with current Ethereum blob rates and Dogecoin fee rates.
The practical consequence for contract design: calldata size affects cost more than it does on a single-layer chain. Optimizing for calldata is worth real money at mainnet. Full breakdown in DogeOS gas fees.
The DogeOS SDK
For consumer-facing apps, DogeOS publishes an SDK covering configuration, embedded wallets, Wagmi integration and a hooks API, documented at docs.dogeos.com/en/sdk.
Use it when you want social-login-style onboarding and embedded wallets — DogeOS's stated audience is Dogecoin's consumer base, and Jefferson has framed the target user as someone who "doesn't know what any of this is." Use raw EVM tooling when you are building infrastructure and your users already have wallets.
What does not carry over to mainnet
Your contract code does. That is the value of deploying now.
Nothing else does. Specifically:
- Addresses. Contracts deployed to Chikyū do not exist on mainnet. Deploy again.
- Chain ID and RPC. Mainnet will not be 6281971. Anything hardcoded needs to be configurable now.
- Economics. Testnet gas is free in practice. The data and finality fee is where mainnet costs will actually come from, and you cannot measure it on a testnet.
- Any assumption about the bridge. The trust model is not documented, and the trust-minimized design depends on a Dogecoin Core change that has not been merged. See the Dogecoin ZK upgrade explainer before building anything whose security rests on L1 settlement.
What changes at mainnet
- New chain ID, RPC and explorer. Every value in this page's config block becomes testnet-only.
- Real fee measurement becomes possible, which is when contract-level calldata optimization stops being theoretical.
- Verification endpoints change with the mainnet explorer.
- Unsupported precompiles and opcodes may change. Re-read the differences page at launch rather than trusting this snapshot.
The docs state the team is "diligently working towards a mainnet launch," with no date published. Status tracked on our DogeOS mainnet page.
FAQ
Can you deploy smart contracts on DogeOS?
Yes, on the Chikyū testnet. DogeOS is EVM-compatible, so Hardhat, Foundry and standard Solidity tooling work with a network config change. There is no mainnet yet.
What Solidity version does DogeOS support?
Solidity 0.8.30 with `prague` as the EVM target, per the developer docs.
Does SELFDESTRUCT work on DogeOS?
No. It is disabled, and encountering the opcode reverts the transaction.
Which precompiles are unsupported on DogeOS?
RIPEMD-160 (`0x3`), blake2f (`0x9`) and point evaluation (`0x0a`) are unsupported and revert when called. `modexp` is limited to inputs of 32 bytes or less.
How do I verify a contract on DogeOS?
Against the explorer's Blockscout API at `https://dogeos-testnet.l2scan.co/api`, using `npx hardhat verify --network dogeosTestnet` or `forge verify-contract` with `--verifier blockscout`.
How are DogeOS transaction fees calculated?
`totalTxFee = executionFee + dataAndFinalityFee`, denominated in DOGE. The execution fee follows Ethereum's model; the data and finality fee covers committing calldata to Ethereum for data availability and finalizing on Dogecoin.
Is there a DogeOS SDK?
Yes, documented at `docs.dogeos.com/en/sdk`, covering configuration, embedded wallets, Wagmi integration and a hooks API.
Will my testnet deployment work on DogeOS mainnet?
Your code will, since it is EVM-compatible. Addresses, chain ID, RPC and fee economics will not carry over, so avoid hardcoding any of them.
Sources
- DogeOS Docs — Developer quickstart — network config, Hardhat snippet, Foundry command, ethers.js provider, Solidity and EVM target prerequisites
- DogeOS Docs — Verifying smart contracts — API URL and both verification commands, verbatim
- DogeOS Docs — Ethereum and DogeOS differences — opcode changes, unsupported precompiles, modexp limit, EIP-4844/4788, 17-block reorg depth, prague target
- DogeOS Docs — Transaction fees — fee formula and the data-and-finality component
- DogeOS Docs — Building on DogeOS — "our testnet is now live," "diligently working towards a mainnet launch"
- DogeOS Docs — SDK — SDK scope
Last verified: · We did the same for Circle's chain in the Arc hub.
TrustSwap is not affiliated with DogeOS, MyDoge or the Dogecoin Foundation. DogeOS has not announced a token; any asset trading under the DogeOS name is unaffiliated with the project.