What signing a Litecoin message proves — research package v1.0.0 ORIGINAL SOFTWARE EXPERIMENT Pinned Litecoin Core 0.21.5.8. Actual UTC run: 15 October 2026, 22:53:18–22:53:22 (16 October at 00:53 Europe/Warsaw). One fresh regtest node, peer networking disabled, loopback RPC, two fresh wallets and zero funds. No blocks were mined and no payment was created. The original challenge explicitly expired on 15 October at 00:00:00 UTC, before the experiment. Core nevertheless returned true for the exact message/address/signature, including an identical replay. MEASURED CASES 11 verifymessage calls: exact legacy true; modified purpose false; wrong legacy address false; identical replay true; substituted nonce false; appended LF false; LF-to-CRLF false; appended space false; exact UTF8 true; visually similar NFD-normalized Unicode false; newly signed fresh challenge true. Unsupported native-SegWit signmessage returned error −3, Address does not refer to key. A wallet containing only an imported public legacy address returned error −4, Private key not available. These are capability errors, not Boolean verifier-false outcomes and not claims about every wallet or message-signing protocol. Signer balance was zero before and after signing. 32 experiment assertions passed. The recorded own-node exit code is 0 and cleanup flags state that its fresh data directory was removed. SEPARATE APPLICATION MODEL application-model.json contains six explicitly labeled deterministic cases for a fictional application policy. The model compares expected site, purpose, address and nonce, then expiry and previously consumed nonces. It is not Core functionality, a login implementation or evidence of any real service behavior. The reference checked_at time is frozen. The fixed 64-hex test nonces are public fixtures, not suitable nonces for a real authentication deployment. A real application must generate its own unpredictable one-use challenges and enforce its full policy in an authenticated, stateful implementation. OFFLINE VERIFICATION Python 3.10 or later, standard library only; no network, Core binary or wallet: python verify.py.txt The script verifies SHA256SUMS, recovers public keys using compact secp256k1 ECDSA signatures over the Litecoin message hash, compares regtest P2PKH addresses, and independently reproduces all 11 true/false cases. It checks exact UTF8 bytes, the CSV, recorded RPC outcomes, and the separate application model. It checks recorded shutdown/cleanup flags, not a former remote process. The small pure-Python crypto implementation processes only public fixture data; it is educational and unaudited. Do not use it as a production authentication component. Hash consistency is not an authenticity or security certification. FRESH REPRODUCTION Only in a disposable environment with the pinned Linux binaries: python reproduce.py.txt /path/litecoind /path/litecoin-cli new-output-directory The script creates its own directory and wallets; it accepts no existing wallet, seed, configuration or RPC credential. A 75-second work alarm allows bounded shutdown; the private runner additionally limits the process group to at most 90 seconds. All RPC connections are loopback and peer networking is disabled. Fresh keys, signatures and actual future expiry timestamps can differ. The offline verifier checks the published frozen run, not byte identity of reruns. BINARY SHA256 litecoind 63fb440cdc5e2e7d46144b8e3a47dab4725fa9c056a77b8b12b11854504f4838 litecoin-cli d185011cc0dbb5d2dd20611e9dc060dbb0a5d9be31a03f57da5dbd3dad4c3769 Source provenance and source-file hashes are in sources.json. Pinned bytes identify the tested runtime; no independent reproducible-build claim is made. PRIVACY AND LIMITS The package contains generated zero-funded public regtest addresses, readable messages, signatures and public wallet metadata. No private key, seed, wallet file, private descriptor, authentication cookie or production account appears. getaddressinfo can include generated PUBLIC key/descriptor data. No private material was exported. Public signatures may be copied and replayed; fixtures must never be used as a real account proof or a request to send funds. This is not a mainnet, identity, reserve, ownership, multisig, MWEB, hardware wallet, message-URI, transaction authorization, account login or security audit. An unsupported address format in this particular legacy Core utility does not establish that all other wallets or signing protocols reject that format. FILES results.json: complete original outcomes and 32 experiment assertions. cases.csv: 11 exact-message verifier cases with UTF8 message SHA256. rpc-trace.json / rpc-help.json: actual generated-fixture RPC calls and runtime help. application-model.json: six fictional application-policy cases, separately labeled. challenge.txt: exact original signed message, with no trailing newline. cleanup.json: recorded successful process/directory cleanup. reproduce.py.txt: isolated fresh experiment; requires pinned Core binaries. verify.py.txt: offline independent cryptographic and evidence checks. challenge-checklist.txt / signature-request-template.txt: useful blank templates. rpcwallet.cpp.txt / misc.cpp.txt / message.cpp.txt: official tagged MIT source copies. sources.json / SHA256SUMS.txt: provenance and public-file checksums.