DOGE Connecting

Docs / Origin / Origin Services

Write to Dogecoin from DogeOS

Origin Services

Pay on DogeOS for a v1 inscription delivered to any Dogecoin address, or a 1 DOGE OP_RETURN stamp. Refundable if not done in time.

Testnet

Origin Services let a DogeOS contract write to Dogecoin. Pay in DOGE on DogeOS and Origin does the L1 work: an inscription in the v1 inscription standard, delivered to the Dogecoin address you name, or a short OP_RETURN stamp. Attesters re-read the result from Dogecoin before they sign a receipt, and your contract can be called back when it lands. If it isn't done by the deadline, you take your fee back.

Pricing

ServicePriceExamples
Inscription (OriginInscriber)2 DOGE + 0.0015 DOGE per byte1 KB ≈ 3.5 DOGE · 4 KB ≈ 8.1 DOGE · 16 KB ≈ 26.6 DOGE
OP_RETURN stamp (OriginAnchor)1 DOGEUp to 76 bytes, e.g. a 32-byte hash
Fresh fact (Origin)0.05 DOGESee fresh facts

Always read the live price on chain (previewFee) rather than hard-coding it. A plug's creator earns 20% of every fee paid through their plug; Origin keeps the rest.

Inscribe from DogeOS

inscribe.sol
bytes memory body = envelope.launchpadMintBody("my-collection", "7", "100");
uint256 fee = inscriber.previewFee("LAUNCHPAD_MINT", body.length);
(uint256 requestId, bytes32 envelopeHash) = inscriber.requestInscription{value: fee}(
  "LAUNCHPAD_MINT", "application/json", new bytes[](0), body, winnerDogeAddress, plugId);

// optional: implement IOriginInscriptionReceiver to be told when it lands
function onInscribed(uint256 requestId, string calldata inscriptionId, bytes32 revealTxid, uint256 revealVout) external;

Tags you can inscribe with, and their size limits:

ACTIONContent-typeMax size
LIST / CANCEL / BUY / AUCTION_LIST / AUCTION_BIDimage/* or video/*4 KB
LAUNCHPAD_DEPLOY / LAUNCHPAD_MINTapplication/json4 KB
TOKENIZEapplication/pdf16 KB
ZKPany non-text type16 KB

Rules that keep it honest:

  • Exactly what you paid for. The request commits to the full envelope hash. Attesters rebuild the envelope from the reveal transaction on Dogecoin and only sign if it matches byte for byte and was delivered to your address.
  • No DRC-20. Origin refuses text/plain bodies, and Origin won’t inscribe a DRC-20 body for Origin under any tag. Use lowercase content-types.
  • Refunds. Work only starts if there's time to finish before the deadline (24 hours from payment). If it isn't fulfilled by then, call reclaim(requestId).
  • Protocol tags stay closed. Internal protocol tags (bridge, payouts, swaps) can't be opened to anyone.

Stamp an OP_RETURN

For proofs that don't need an inscription: a leaderboard root, a document hash, a season seal. Origin writes "ORA1" followed by your bytes (up to 76) in an OP_RETURN output.

stamp.sol
bytes memory data = abi.encodePacked(keccak256(standings));
(uint256 requestId, bytes32 payloadHash) = anchor.requestAnchor{value: anchor.previewFee("PROOF")}("PROOF", data, plugId);

// later, anyone:
(bool ok, bytes32 txid, uint64 l1Height) = anchor.isAnchored(data);

Categories match the plug shelves: HOLDERS, DOGINALS, COINS, PAYMENTS, IDENTITY, PROOF. Every stamp is also findable in the OP_RETURN index by its SHA-256 or by ?magic=ORA1.

💡

Want this without writing the contract? Prize Forge (Doginal prizes) and Season Seal (leaderboard stamps) are ready-made plugs built on these two services.