Two signers
The TaskManager holds two distinct signer addresses, one per trust boundary:Decrypt result signature verification
The TaskManager supports permissionless publishing of decrypt results. Anyone holding a valid signature from the decryption service can publish the result onchain. Today that signature comes from Teecryptor; a decentralized Threshold Network is the planned successor. Verified results are stored in the PlaintextsStorage contract, where any contract can read them back withgetDecryptResult (reverts with DecryptionResultNotReady if pending) or getDecryptResultSafe (returns a ready flag).
Functions
All take(ctHash, result, signature); the batch variants take parallel arrays.
Signature message format
The signed message is a fixed 76-byte buffer:
The message is hashed with
keccak256 and verified using OpenZeppelin’s ECDSA.tryRecover. The enc_type and chain_id are derived onchain, binding each signature to a specific ciphertext type and chain.