Verify it yourself

On 13 October 2026 Enrico Ottavian (@enrico_otta) posted this text on X:

Hello X - have been here for a long time but never posted, I will be sharing a lot about what we are doing in AI and compute markets here and on linkedin

He signed the SHA-256 of that exact text (UTF-8, no trailing newline) with his personal qualified electronic signature under eIDAS, issued by Evrotrust (certificate CN=ENRICO OTTAVIAN, serial 2FDCC2590FF3537935A8852EB0E959F2724741A6). The signature is committed on TensorCash mainnet in five chained transactions, one OP_RETURN each.

Messagemessage.txt
SHA-2562d18dad3b20b7fd236b5b0945576a1bc2741046c9bb2a26459d0baee434ff4b0
Signaturesignature.b64 (256 bytes, RSA PKCS#1 v1.5 over the SHA-256)
Certificatesigner_cert.pem, SHA-256 fingerprint 955e624403527a4826014640493cf3731b9d1749683ef863cfeda42422552f55
Evrotrust transaction211611236585
Confirmed inmainnet block 31144, hash 842a0ae030af8599530f7e9ee060a710c6dba14b2a884f851e63964c8480eb5a, 2026-10-13 16:38:11 UTC
On-chainop_return_payloads.json; transactions 0, 1, 2, 3, 4

1. Check the hash

curl -sO https://www.asktilly.ai/verify/enrico-otta-2026-10-13/message.txt
shasum -a 256 message.txt
# 2d18dad3b20b7fd236b5b0945576a1bc2741046c9bb2a26459d0baee434ff4b0

2. Check the signature against the certificate

curl -sO https://www.asktilly.ai/verify/enrico-otta-2026-10-13/signature.b64
curl -sO https://www.asktilly.ai/verify/enrico-otta-2026-10-13/signer_cert.pem
openssl x509 -in signer_cert.pem -noout -subject -issuer -dates
openssl x509 -in signer_cert.pem -noout -pubkey > pub.pem
base64 -d signature.b64 > signature.bin
openssl dgst -sha256 -binary message.txt > msg.sha256
openssl pkeyutl -verify -pubin -inkey pub.pem -sigfile signature.bin -in msg.sha256 -pkeyopt digest:sha256
# Signature Verified Successfully

The issuer is Evrotrust Technologies JSC, a qualified trust service provider on the EU trusted list. The subject name and the qualified-certificate statements are in the certificate itself.

3. Check the chain commitment

Each transaction carries one OP_RETURN of at most 80 bytes: a 6-byte tag TSCQES, a sequence byte, then for sequence 0 the message hash and the certificate fingerprint, and for sequences 1 to 4 the first 9 bytes of the message hash followed by 64 bytes of the signature. Concatenate the four 64-byte parts in order and you get signature.bin. Each transaction spends the previous one's change output.

for t in c4188016b0c412f5dadcc01a170e01082f27002abe1ae213dc55b7cbb545163a 0a198bdf4834f46935e86bb3a6c17d2f8a597d706916bda5b871d96d2aac4a92 bb80634c4c42910887b179ea4d49555f9ed26f7530458d5982f5d374483ac28c 89e777e7cf6f8fb408c8a6faf42b0d9e27fd80e7b5711afab9785318aebdcc90 3dc9d563ea78005c9715590d5ad3c6252638834de6331368c83d39ab31f1145f; do
  curl -s https://api.tensorcash.org/esplora/api/tx/$t | python3 -c 'import json,sys;t=json.load(sys.stdin);print([o for o in t["vout"] if o["scriptpubkey_type"]=="op_return"][0]["scriptpubkey_asm"].split()[-1])'
done
# prints the five payloads: "545343514553" (TSCQES) + sequence byte + data; the last four carry 64 signature bytes each

If you run a node: getrawtransaction <txid> true shows the same nulldata output.