Synopsis
cowboy tee submits the CIP-23 §3.8 TEE-verifier system actor (0x05) instructions to a validator. update-collateral and register-key are governance operations and must be signed by a key listed in genesis.system_deployers; verify-cae is how a runner registers by submitting its Composite Attestation Envelope.
Each subcommand accepts --private-key and --rpc-url, resolved with key auto-discovery. Every write signs with resource limits from the node’s estimate.
Subcommands
cowboy tee update-collateral
Governance: publish a CollateralSnapshot whose cpu_roots carry the vendor root (for example the AWS Nitro root).
Behavior:
- Read the DER-encoded root certificate from
--root. - Build a minimal snapshot:
cpu_roots = [root],effective_atas given, emptytcb_info,qe_identity,crls,nras_root, andallowed_tcb_statuses, and a one-byte placeholdersnark_verifying_key. - Sign and submit
UpdateCollateral; print the node response and the transaction hash.
Example:
cowboy tee register-key
Governance: endorse a measurement (the operator root) by registering a trusted key for (tee_type, keccak256(pcr0)).
Behavior:
- Decode
--pcr0and computekeccak256of it; that hash is the on-chain measurement index. - Decode
--public-key. - Sign and submit
RegisterTeeTrustedKey.
Example:
cowboy tee verify-cae
Runner: register by submitting a Composite Attestation Envelope.
Behavior:
- Read the D-CBOR CAE bytes from
--cae. - Decode
--proof; a non-empty proof selects the full (registration) path. The Nitro path ignores its contents. - Parse the three 32-byte hashes, sign, and submit
VerifyCae.
Example:
Edge Cases
update-collateralandregister-keyare rejected on chain unless signed by agenesis.system_deployerskey.--job-id,--req-hash, and--result-hashmust each decode to exactly 32 bytes.- The default
--proof abis a non-empty placeholder, so the full registration path is selected unless you pass an empty proof explicitly. update-collateralpublishes a snapshot with onlycpu_rootspopulated; SGX/TDX collateral fields (tcb_info,qe_identity, CRLs) are left empty.