It looks like t-type addresses start with t1, and multisig with t3.
// guarantees the first 2 characters, when base58 encoded, are "t1"
base58Prefixes[PUBKEY_ADDRESS] = {0x1C,0xB8};
// guarantees the first 2 characters, when base58 encoded, are "t3"
base58Prefixes[SCRIPT_ADDRESS] = {0x1C,0xBD};
But how to generate them? Never seen dual prefixes berfore.
Thanks for your message, I’m reading it right now.
I’m just sharing my thoughts, so people can correct me.
From the protocol:
In Bitcoin a single byte is used for the version field identifying the address type. In Zcash two bytes are used. For addresses on the production network, this and the encoded length cause the first two characters of the Base58Check encoding to be fixed as “ t3 ” for P2SH addresses, and as “ t1 ” for P2PKH addresses. (This does not imply that a transparent Zcash address can be parsed identically to a Bitcoin address just by removing the “ t ”.)
But that’s pretty much what I can read in the source code too. Let me try to fire up the wallet.
@5chdn: wait, what? The same thing gives me testnet addresses on my zcashd + zcash_cli. How did you get that? Started zcashd without testnet=1 in zcash.conf?