TAP on DogeBitcoin Universe

Practical walkthrough

Using TAP on Doge

What actually happens when you mint, transfer, or send a TAP token on Dogecoin, what your wallet will show you at each step, and the specific mistakes that cost people money on this chain rather than on Bitcoin.

What you need

Worked example: a mint

Assume a ticker tap is deployed with a per-mint limit of 1000 and supply remaining. The payload is:

{
  "p": "tap",
  "op": "token-mint",
  "tick": "tap",
  "amt": "1000"
}

That is 62 bytes, which fits in a single 520 byte chunk, so the reveal needs one transaction and no continuation chain.

The steps of a TAP mint on Dogecoin Four steps left to right. Step one, commit: fund an output that will pay for the reveal. Step two, reveal: spend it with the inscription push data in input zero, which creates the inscription. Step three, confirm: about one minute for the first confirmation. Step four, credit: the indexer reads the payload and adds the amount to the address's available balance. No tapping is needed for a mint. 1. COMMIT Fund the output that pays for the reveal. 2. REVEAL Push data in input 0 creates the inscription. 3. CONFIRM About one minute for the first confirmation. 4. CREDIT Available balance goes up by 1000. A mint is not tapped. It takes effect on its own confirmation. Your DOGE balance falls by the fee. Your token balance only exists in an indexer's reading of the chain.
The mint path on Dogecoin. Commit, reveal, confirm, credit.

What to check before you sign

  1. The payload text, character for character. token-mint, not mint.
  2. The ticker, including any leading -. -tap and tap are different tokens.
  3. That the amount is within the deployment's per-mint limit, and that supply remains. A mint past either is a fee spent for nothing.
  4. That the inscription output goes to an address you control and can later spend individually.
  5. The fee, in DOGE. Dogecoin has no witness discount, so you pay full rate on every byte including the pretty-printing whitespace.

Worked example: a transfer

Moving a TAP token to someone else takes two on-chain steps, and the second one is an ordinary Dogecoin send.

{
  "p": "tap",
  "op": "token-transfer",
  "tick": "tap",
  "amt": "100"
}

Notice that there is no recipient. This surprises people every time. A token-transfer parks 100 tokens inside an inscription you still own; you decide who gets them afterwards, by sending that inscription.

The two on-chain steps of a TAP transfer Step one: inscribe a token-transfer for 100. On confirmation, 100 moves from your available balance into your transferable balance and a live transfer inscription now exists, still owned by you. Step two: send that inscription to the recipient in an ordinary Dogecoin transaction. On confirmation, 100 leaves your transferable balance and credits the recipient's available balance, and the inscription is consumed. STEP 1: INSCRIBE THE TRANSFER Your available balance falls by 100. Your transferable balance rises by 100. Your total balance does not change. You still own the inscription. Nothing has moved. STEP 2: SEND THE INSCRIPTION An ordinary Dogecoin transaction. Your transferable balance falls by 100. Their available balance rises by 100. The inscription is consumed and cannot move tokens again. Two confirmations, about two minutes on Dogecoin. On Bitcoin the identical sequence is about twenty.
A transfer is park then send. Step one alone moves nothing to anybody.
The most common way people lose TAP tokens

After step one you hold an ordinary looking Dogecoin output with a tiny DOGE value attached. If your wallet does not know it carries an inscription, it may spend it as change in an unrelated payment. The tokens go wherever that change went. Use a wallet that tracks inscriptions and can send a chosen one, and check that the output you are spending is not your transfer inscription.

Worked example: a batch send

token-send moves many amounts of many tickers to many recipients in one operation, and unlike a transfer it names its recipients directly. It is an internal operation, so it must be tapped.

{
  "p": "tap",
  "op": "token-send",
  "items": [
    { "tick": "tap", "amt": "10000", "address": "DHZqJo3DUyhQsrdR3Kcs8xvfaMzPkzE5gP" },
    { "tick": "tap", "amt": "2500",  "address": "D5djC8ayTw5dixq1bKGHABLE8KPN9MrF4C" }
  ]
}

Those two addresses are documentation examples. They carry correct Dogecoin mainnet checksums and version byte 0x1e, and nobody holds their keys.

  1. Inscribe the payload to your own address. Sending it anywhere else at this stage wastes it.
  2. Wait for it to confirm, about one minute.
  3. Send that inscription from your address back to the same address. This is the tap.
  4. On the tap's confirmation, the sends execute.
Atomic in one way, not the other

If any item is malformed, the whole inscription is invalid before you ever tap it, so a typo costs you the inscribe fee and nothing else. But at tapping time each item is judged separately: an item you cannot fund is skipped while the rest go through. Do not assume all or nothing at the tap.

Choosing a confirmation count on a one-minute chain

Advice written for Bitcoin gets repeated on Dogecoin without adjustment, and it means something different here. Six confirmations on Bitcoin is about an hour of elapsed time. Six confirmations on Dogecoin is about six minutes.

The same confirmation counts, on both chains, in elapsed time.
ConfirmationsDogecoinBitcoinDoge blocks for the same wait
1about 1 minuteabout 10 minutes10
3about 3 minutesabout 30 minutes30
6about 6 minutesabout 1 hour60
12about 12 minutesabout 2 hours120
60about 1 hourabout 10 hours600

The confirmation comparator will do this for any number you care about.

Two honest caveats before you simply multiply by ten:

What supports TAP on Doge

This table lists only what can be verified in the Bitcoin Universe codebase. Absence here means the code does not implement it, not that it is planned or unplanned.

Bitcoin Universe product support, from the protocol registry and the generated capability snapshot.
CapabilityStateDetail
View balances and activitySupportedExplorer and wallet surfaces read normalized TAP-DOGE assets, events, and holders.
MintSupportedThe Inscribe surface offers mint for tap_doge.
Send and receiveSupportedWallet surface actions.
Marketplace listing, buying, offers, settlementFeature gatedBehind a deployment feature flag, in external execution mode: Bitcoin Universe builds and validates the exact Dogecoin transaction, your wallet signs it. Settlement requires at least one confirmation plus the expected protocol state transition in a later authoritative checkpoint.
SellNot supportedRecorded reason: TAP on Doge has no executable offer workflow on this marketplace surface.
Deploy a tickerNot offeredThe Inscribe surface for tap_doge lists mint only. Deploying requires other tooling.
Pending and mempool activityNot claimedThe Dogecoin TAP source reports partial coverage and does not claim complete pending activity. See the reference.

Third-party Dogecoin wallets and marketplaces exist and some of them handle TAP-DOGE. This documentation does not certify them, because it cannot verify them from the code it can read. Verify support with the tool's own maintainers before trusting it with a balance.

Mistakes that cost money

A draft payload that uses the DRC-20 operation names

This is worth its own heading because the failure is quiet. TAP prefixes its token operations. DRC-20 and BRC-20 do not. A payload that mixes the two looks entirely reasonable:

The bare operation names belong to a different protocol. Under p: "tap" they mean nothing.
If a draft saysUnder p: "tap" it should say
"op": "deploy""op": "token-deploy"
"op": "mint""op": "token-mint"
"op": "transfer""op": "token-transfer"
"op": "send""op": "token-send"
Why this one is expensive

An inscription carrying {"p": "tap", "op": "mint", …} confirms perfectly well. You pay the full Dogecoin fee. Then nothing happens, forever. No TAP indexer recognises mint, and no DRC-20 indexer claims the message either, because p is not drc-20. There is no retry and no recovery: the payload is on the chain and it is inert.

Treat any pre-filled payload, from any tool, as a draft to be read rather than a result to be trusted. If a handoff draft you were given to paste into a wallet carries a bare mint or transfer under p: "tap", do not inscribe it. Run it through the validator first, which names this exact case.

A Bitcoin address in a Dogecoin payload

The published Dogecoin TAP specification inherited its address wording and all of its example addresses from the Bitcoin document, so copying an example verbatim gives you a bc1p… recipient. On Dogecoin that address cannot exist. Recipients must be Dogecoin mainnet base58check addresses starting with D, or 9 or A for pay-to-script-hash. The validator checks the checksum and the version byte.

Tooling that builds a Bitcoin witness envelope

A Bitcoin ord envelope uses OP_FALSE OP_IF. Dogecoin's inscription parser reads push data only and stops at the first non-push opcode, so such a script inscribes nothing at all. If you ported an inscriber from Bitcoin, confirm it writes push data into the signature script of input 0, not a witness.

An interrupted reveal chain

Large content on Dogecoin spans several transactions, each revealing the next piece. If the chain breaks, the inscription is not truncated, it does not exist. Every fee already paid is spent and there is no way to supply the missing pieces later. Fee your reveal chain so that it confirms, and do not start one you cannot finish.

Assuming Bitcoin's byte economics

Bitcoin discounts witness bytes to a quarter of their weight, which is why large inscriptions became affordable there. Dogecoin has no witness and no discount: every byte of the inscription is charged at full rate, and fees are quoted per kilobyte of the whole transaction. Pretty-printed JSON costs real money. Minify payloads you are inscribing.

Forgetting postage

The output carrying your inscription must hold enough DOGE to stay above the dust threshold. Dogecoin's dust threshold is far higher in nominal units than Bitcoin's, and a transaction that drops an inscription output below it will not relay. Leave the postage your wallet suggests rather than trimming it to save fees.