The prefix byte for standard and contract post-condition principals does not appear to be documented.
Standard principals:
1 byte: 0x02
1 byte version
20 bytes for the hash160
Contract principals:
1 byte: 0x03
1 byte version
20 bytes for the hash160
1 byte for contract name length -- a value between 1 and 128 inclusive
the contract name
For Transaction Signing and Verifying the spec says
If this is a single-signature spending condition, then set the fee rate and nonce to 0, set the public key encoding byte to Compressed, and set the signature bytes to 0 (note that the address is preserved).
I started to implement my versions of verifyBegin() and verifyOrigin() (as in @stacks/transactions) and noticed that the public key encoding byte is copied for standard single-sig transactions, not set to compressed.
The prefix byte for standard and contract post-condition principals does not appear to be documented.
Standard principals:
0x02
Contract principals:
0x03
For Transaction Signing and Verifying the spec says
I started to implement my versions of
verifyBegin()
andverifyOrigin()
(as in@stacks/transactions
) and noticed that the public key encoding byte is copied for standard single-sig transactions, not set to compressed.