{"format":"BID1","magic":"42494431","magicAscii":"BID1","opReturnLayout":[{"offset":0,"bytes":4,"field":"magic","value":"BID1"},{"offset":4,"bytes":1,"field":"flags","note":"bits 0-2 script type; bit 3 (0x08) control proved by spending rather than signing; bit 4 (0x10) HACKED MARK — read the warning below; bit 5 (0x20) revoke; bit 6 (0x40) a story commitment follows the program"},{"offset":5,"bytes":1,"field":"bounty","note":"percent, 0-100; always 0 on a hacked mark"},{"offset":6,"bytes":8,"field":"key","note":"first 8 bytes of SHA256(KEY_TAG || protected scriptPubKey)"},{"offset":14,"bytes":"20 or 32","field":"rescueProgram","note":"omitted when the revoke flag is set. When the HACKED flag is set this field is a DONATION address, not a rescue address."},{"offset":"34 or 46","bytes":16,"field":"storyHash","note":"present only when bit 6 is set: SHA256(\"BID1-story/v1\" || story)[0..16]"}],"keyTag":"BID1-key/v1","keyDerivation":"SHA256(\"BID1-key/v1\" || protectedScriptPubKey)[0..8]","scriptTypes":{"0":"P2PKH","1":"P2SH","2":"P2WPKH","3":"P2WSH","4":"P2TR"},"revokeFlag":32,"proofSpendFlag":8,"hackedFlag":16,"storyFlag":64,"hackedMark":{"warning":"A record with bit 4 set is NOT a rescue authorisation and its address field is NOT a rescue destination. Sending recovered coins there would pay whoever published the mark. Implementations that do not understand this flag must ignore the record entirely rather than treating it as a registration.","meaning":"A claim, published by someone proving control of the donation address, that the address behind the lookup key was drained without their authority.","notProof":"The chain cannot show that coins were stolen — only that they moved. Bit ID verifies control of the donation address and that the drained address lost its balance. It does not verify, and cannot verify, that a theft occurred.","bounty":"Always 0. There is nothing to rescue and nobody to pay.","storyHashTag":"BID1-story/v1","storyHashBytes":16,"storyMaxChars":500,"storyNote":"The text is served from bitid.online, not the chain. The commitment makes it tamper-evident, not immutable and not permanently hosted.","tiers":{"anchored":"A Bit ID rescue record naming this donation address was published before the coins moved. The claim was not invented after the loss.","signed":"Whoever published this controls the donation address, and the drained address really did lose its balance. Nothing shows that the two are connected, or that anything was stolen."},"lengths":{"20-byte donation program":34,"with story":50,"32-byte donation program":46,"32-byte with story":62}},"proof":{"note":"How the owner proved control of the protected address before Bit ID published for them. Both prove control; they are not equally strong evidence of intent.","signature":"Flag clear. The owner signed a statement naming the rescue address, the bounty, and the words \"I authorise\". Also what every record published before this flag existed used.","spend":"Flag set. The owner paid the publishing fee from the protected address itself. Spending proves control, but the statement of intent is a web form rather than a signature."},"headerLength":14,"recordLengths":{"20-byte rescue program":34,"32-byte rescue program":46,"revocation":14},"defaultBounty":10,"registryAddress":"bc1qedpzpgazrxxv23gmsluush5tl6eyvhu8u54kcj","network":"mainnet","authority":{"note":"A record counts only if the transaction carrying it was entitled to publish it.","rules":[{"source":"self","rule":"The transaction spends an input belonging to the protected address. Self-authenticating; needs no involvement from Bit ID.","precedence":1},{"source":"registry","rule":"The transaction spends an input belonging to bc1qedpzpgazrxxv23gmsluush5tl6eyvhu8u54kcj. Bit ID publishes only records whose authorisation signature it verified.","precedence":2}],"warning":"A transaction that merely PAYS the registry address carries no authority. Check the inputs, not the outputs."},"supersede":"Later records replace earlier ones from the same source. A self-published record outranks a registry-published one."}