Skip to content
jonheavenPublic

About

ÐMP — canonical spec for the Doginals Marketplace Protocol (listings, auctions, settlement on Dogecoin).

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

35 Commits

Folders and files

Repository files navigation

ÐMP — Doginals Marketplace Protocol

This repository is the canonical public specification for ÐMP (p: "dmp").

ÐMP records Doginal marketplace intent on-chain: listings, cancels, fills and more. Any indexer with a full node can verify that intent against UTXO movement, so no venue's API is the source of truth.

ÐMP 1.0 has not launched yet. Its fixed-price format is the compact signed order. A compact list inscription carries the seller's SIGHASH_SINGLE|ANYONECANPAY signature and the order terms. Every indexer rebuilds the same seller PSDT byte for byte from its own node, and any wallet can fill the order.

Version ÐMP 1.0 = compact signed orders (compact-orders.md, wire "v":"2") + the ops in spec.md (wire "v":"1.0"). There is no ÐMP 2; "2" is only the compact-order wire marker
Status Pre-launch draft, tested on regtest. It stays pre-launch until a cross-venue trade between independent implementations is proven on mainnet. The earlier list format with an embedded psdt/psdt_hash is a draft (pre-1.0) format: do not create it; indexers should ignore it
Durable payload JSON in a Dogecoin inscription with "p": "dmp"
Fill One transaction, with the seller's signature on in[1]/out[1] and the dog on any buyer output. The fill is the settlement
Guarantees The seller's net payout is enforced by signature. Royalties and venue fees are declared on the order and verified by indexers, not enforced. See what is guaranteed vs verified
Chain Dogecoin
License MIT

ÐMP is not a token standard. It governs how unique Doginals are listed and traded. Fungibles stay on Ðunes and Treats.

Authors

Jon Heaven — GitHub @jonheaven · X @jontype

If you ship this in a wallet, marketplace or indexer, emit "p": "dmp" only and keep the op shapes identical, so every indexer sees one order book.

Start here

You are… Read
Building an indexer, wallet or venue IMPLEMENTERS.md, then compact-orders.md
Already shipped draft (pre-1.0) lists MIGRATION-from-draft.md
Claiming conformance CONFORMANCE.md and vectors/
Need JSON today EXAMPLES/v2/ and schemas/
Other ops (auctions, offers, collections, …) spec.md and implementation-guide.md

Compact orders in one screen

{"p":"dmp","v":"2","op":"list","chain":"dogecoin",
 "inscription_id":"<txid>i0","utxo":"<txid>:<vout>","price":"1000000000",
 "pay_to":"<seller address>","pubkey":"<66 hex>","sig":"<DER hex>83",
 "fees":{"royalty_bps":"500","royalty_to":"<address>","market_bps":"200","listing_to":"<address>"},
 "ts":1792632460,"expiry":1792718860}
  • Template. in[0] is the buyer's placeholder, in[1] is the dog (utxo), out[0] is 100000 koinu to pay_to, and out[1] is the seller's net. The seller signs in[1] with 0x83.
  • Validity. The order is valid only if the signature verifies against the rebuilt template and the order key authorized the inscription (reveal signed by it, or an asig). Duplicate keys are rejected. A newer ts wins.
  • Fill. The fill spends in[1] and keeps out[1], with any layout for the rest. It is a sale when the dog lands, by ord FIFO sat flow, with someone other than the seller. Any other spend of the dog is cancel-by-move.
  • Cancel. {"p":"dmp","v":"2","op":"cancel","list_id":"<list id>"} is advisory. Moving the dog is authoritative.
  • Fees. fees is the only ÐMP 1.0 fee format. Royalty and venue-fee outputs are added by the buyer's venue; indexers flag a sale that skips one (fee_split_ok: false) but never reject it.
  • Settled at 6 confirmations. Reorgs roll the state back.
python3 -m pip install ecdsa
python3 reference/dmp_v2_reconstruct.py vectors vectors/dmp_v2_vectors.json
python3 reference/dmp_v2_reconstruct.py state   vectors/dmp_v2_state_vectors.json
python3 reference/dmp_v2_reconstruct.py v1      vectors/dmp_v1_psdt_vectors.json   # draft-list hardening

Other ÐMP 1.0 operations (spec.md)

Operation Purpose
list Fixed-price listing. Use the compact order (compact-orders.md); the spec.md form with psdt/psdt_hash is the draft (pre-1.0) format
bid Buyer declares intent to purchase
settle Records completed transfer + payment verification
cancel Revokes any active intent (list, bid, offer, counteroffer)
auction Creates an auction with configurable modes
offer Private push-style offer from buyer to seller
counteroffer Seller responds with alternate terms
accept Accepts an offer or counteroffer
decline Declines an offer or counteroffer
transfer Explicit non-sale ownership transfer (gifts, airdrops)
collection Creator-signed collection manifest
collection-update Append-only metadata update for a collection
vote DAO governance signal

Documentation

Document Description
compact-orders.md ÐMP 1.0 compact signed orders (normative; formerly spec-v2.md, which now redirects)
IMPLEMENTERS.md Implementer guide, reference, vectors, draft lists on mainnet
MIGRATION-from-draft.md What a draft (pre-1.0) implementation must change (formerly MIGRATION-v1-to-v2.md)
CONFORMANCE.md Conformance checklist
spec.md ÐMP 1.0 protocol specification (all other ops)
dogetag-offers.md Lightweight OP_RETURN offer signaling extension
implementation-guide.md How to build a compliant indexer
security.md Threat model, mitigations, and what is guaranteed vs verified
adoption-roadmap.md Phased adoption strategy
philosophy-and-design.md Design principles and philosophy
collaborative-fees.md Listing-venue / settlement-venue fee split and royalties, in 1.0 fees fields, with the draft → 1.0 field mapping
changelog.md Version history
contributing.md How to contribute
testing.md Testing approach and scenarios
EXAMPLES/ JSON operation examples (incl. collection-with-parent-inscription.json for ÐMP 1.0)
schemas/ JSON Schema validation files
vectors/ Conformance vectors
reference/ Python spec.md validator and compact-order reconstructor

spec.md reference validator

python reference/dmp_reference.py validate EXAMPLES/list-op.json
python reference/dmp_reference.py test-vectors

Repo layout

compact-orders.md       ÐMP 1.0 compact orders (normative)
spec.md                 ÐMP 1.0 other ops (normative)
IMPLEMENTERS.md         implementer guide
MIGRATION-from-draft.md draft (pre-1.0) → 1.0 changes
spec-v2.md, MIGRATION-v1-to-v2.md   redirects to the files above
CONFORMANCE.md          conformance checklist
implementation-guide.md indexer / marketplace behavior
security.md             threat model
EXAMPLES/               JSON operation examples
schemas/                JSON Schema files
vectors/                conformance vectors
reference/              spec.md validator, compact-order reconstructor

About

ÐMP — canonical spec for the Doginals Marketplace Protocol (listings, auctions, settlement on Dogecoin).

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages