Explorer Integration
Tidecoin block and transaction JSON is intentionally close to Bitcoin Core. The explorer-specific work is decoding Tidecoin address constants, post-quantum public keys and signatures, witness v1 P2WSH-512 outputs, and optional AuxPoW metadata.
This page is the explorer implementation guide. It is not the normative protocol spec; consensus rules belong in Protocol and command schemas belong in RPC Reference.
Ingestion model
A basic explorer can ingest blocks with:
tidecoin-cli getblock "<blockhash>" 2Store at least:
| Field | Why it matters |
|---|---|
hash | Canonical block identifier. |
height | User-facing order and confirmation calculation. |
previousblockhash | Reorg detection. |
time, mediantime | Block time displays and API filters. |
version, bits, nonce | Header and mining displays. |
merkleroot | Block integrity display. |
size, strippedsize, weight | Fee and block utilization metrics. |
tx | Transaction indexing. |
auxpow | Present only when the block carries AuxPoW data. |
Track the active chain by block hash, not height alone. If a newly fetched block’s
previousblockhash does not match the explorer’s stored tip, rewind to the
common ancestor and mark disconnected blocks and transactions accordingly.
Transaction JSON
Verbose transaction JSON uses the familiar Bitcoin Core shape:
| Field | Meaning |
|---|---|
txid | Transaction identifier without witness commitment. |
hash | Witness transaction hash when witness data is present. |
version, locktime | Transaction-level fields. |
size, vsize, weight | Serialized size and virtual-size metrics. |
vin | Inputs, including scriptSig and optional txinwitness. |
vout | Outputs, each with value, n, and scriptPubKey. |
scriptPubKey.address | Node-derived address when the script maps to a known address type. |
scriptPubKey.type | Node-derived output classification. |
Use scriptPubKey.address when Tidecoin Core provides it. If the explorer has a
custom address encoder, it must use the Tidecoin prefixes and HRPs from
Address Validation.
PQ key and signature decoding
Tidecoin identifies the PQ signature scheme from the serialized public key, not from a separate scheme byte inside each signature. A serialized PQ public key is:
scheme_prefix || raw_scheme_public_keyKnown prefixes:
| Prefix | Scheme | Serialized public key bytes |
|---|---|---|
0x07 | Falcon-512 | 898 |
0x08 | Falcon-1024 | 1,794 |
0x09 | ML-DSA-44 | 1,313 |
0x0A | ML-DSA-65 | 1,953 |
0x0B | ML-DSA-87 | 2,593 |
Signatures are scheme-specific byte strings. For script paths with a standard sighash byte, display the final byte as the sighash type and decode the remaining bytes using the scheme selected by the public-key prefix.
Do not label the first signature byte as a Tidecoin scheme prefix. Falcon signatures have their own internal format byte; ML-DSA signatures are fixed-size scheme signatures. The canonical layout is documented in Signature Encoding.
Witness v1 P2WSH-512
Tidecoin’s post-AuxPoW witness v1 script-hash output uses a 64-byte SHA-512 script hash. Address encoding uses Bech32m with Tidecoin HRPs:
| Network | PQ witness v1 HRP |
|---|---|
| Mainnet | q |
| Testnet | tq |
| Regtest | rq |
Mainnet recognizes the address syntax, but consensus activation matters for spending and wallet policy. Explorers can decode and display the script form even when mainnet AuxPoW has not activated, but APIs should expose activation state so integrators do not assume every syntactically valid output type is currently standard or spendable on mainnet.
AuxPoW block metadata
When a block carries AuxPoW data, getblock includes an auxpow object. Tidecoin
Core serializes:
auxpow field | Meaning |
|---|---|
tx | Parent-chain coinbase transaction used in the proof. |
chainindex | Tidecoin’s index in the auxiliary-chain merkle tree. |
merklebranch | Branch linking the parent coinbase transaction to the parent block merkle root. |
chainmerklebranch | Branch linking the Tidecoin block hash to the auxiliary-chain commitment. |
parentblock | Serialized parent block header. |
Explorers should store the full auxpow object for block detail pages and expose
whether a block is standalone proof-of-work or AuxPoW. Tidecoin’s AuxPoW chain ID
is 8; activation status is listed in
Activation Status.
Address and script classification
Explorer displays should distinguish:
| Class | Display guidance |
|---|---|
| Base58 P2PKH/P2SH | Show address and network; reject Bitcoin prefixes in API parsers. |
| Witness v0 | Show Tidecoin Bech32 HRP and witness program length. |
| Witness v1 P2WSH-512 | Show Tidecoin Bech32m HRP, witness version 1, and 64-byte program length. |
| Raw PQ public-key spends | Show scheme prefix, scheme name, public-key byte length, and signature byte length when visible. |
| Unknown scripts | Preserve raw script hex and ASM without guessing an address. |
For API consumers, include both the raw script hex and the node-derived classification. Raw fields let downstream indexers recover if explorer-level classification lags a future protocol upgrade.
API recommendations
Explorer APIs should make Tidecoin-specific fields explicit instead of hiding them in generic Bitcoin-compatible objects:
| API field | Recommendation |
|---|---|
network | Return mainnet, testnet, or regtest for addresses and blocks. |
address_type | Include p2pkh, p2sh, witness_v0, witness_v1_p2wsh512, or unknown. |
pq_scheme | Include scheme name when a prefixed PQ public key is decoded. |
sig_size | Expose observed signature byte length for PQ spends. |
has_auxpow | Boolean block field for fast filtering. |
auxpow | Full object on detailed block endpoints. |
activation_state | Include AuxPoW/post-AuxPoW state in chain metadata endpoints. |
Source of truth
| Topic | Source |
|---|---|
| Block and transaction JSON fields | ../tidecoin/src/rpc/blockchain.cpp, ../tidecoin/src/core_write.cpp |
| AuxPoW JSON fields | ../tidecoin/src/rpc/blockchain.cpp |
| Address constants | Address Validation |
| PQ public-key and signature bytes | Signature Encoding |
| Transaction size metrics | Transaction Size & Fees |
See also: RPC Integration Patterns, Address Validation, AuxPoW, Scheme Registry.