TAPProtocol documentation

Interactive tool

TAP payload validator

Paste a TAP inscription payload. The tool identifies the operation, checks the fields that operation requires, explains the authority requirement when the operation is authority bearing, and names the rule behind any rejection.

The validator

Loading the validator. If this message stays, JavaScript is unavailable and you can use the specification and the test vectors instead.

Sample payloads

Load one of these into the validator to see the check run.

These are the payloads the buttons on this page load when JavaScript is available.

token-transferValid
{"p":"tap","op":"token-transfer","tick":"signal","amt":"1.25","dta":"invoice 4192"}
token-transferDuplicate field
{"p":"tap","p":"tap","op":"token-transfer","tick":"tapx","amt":"1"}
token-transferNumeric amount
{"p":"tap","op":"token-transfer","tick":"tapx","amt":1}
token-transferCursed inscription
{"p":"tap","op":"token-transfer","tick":"tapx","amt":"1"}

Loaded at inscription number -1, so the indexed ticker becomes -tapx.

token-deployNames an authority
{ "p": "tap","op": "token-deploy","tick": "signal","max": "21000000","lim": "1000","prv" : "d4e5f60000000000000000000000000000000000000000000000000000000000i0"}
token-sendAuthority required
{"p":"tap","op":"token-send","items":[{"tick":"signal","amt":"100","address":"bc1qexampleaddressvaluehere0000000000000000"}]}

What it checks, and what it cannot

It checks

  • The byte level content contract for token-transfer, as a direct port of the parser in Bitcoin Universe's TAP indexer.
  • The protocol tag and the operation name.
  • The required and optional field set for each documented operation.
  • Ticker length in UTF-16 code units and UTF-8 bytes, NFC lower case form, and forbidden Unicode categories.
  • The amount grammar, the decimal scale you supply, and the atomic conversion.
  • The dta byte cap.
  • Whether the operation is authority bearing, and why.

It cannot check

  • Whether the ticker exists, or what decimal scale its deployment declared. You supply the scale.
  • Whether the sender has the balance. That needs chain state.
  • Whether an authorisation signature is valid. Bitcoin Universe's TAP indexer does not index authority bearing operations, so this site does not claim to verify them.
  • Whether the inscription exists, where it sits, or whether it has already been consumed.

Privacy

The whole check runs in this page. There is no network request when you press the button, nothing is written to storage, and nothing is logged. The only stored value this site keeps at all is your light or dark theme preference, and you can clear it by clearing this site's data.