SignatureEnvelope Types
SignatureEnvelope.Attested
Attested signature (type 0x06).
A program key, held by attested code and registered in the Attested Key Registry, signs AttestedSigner.getSignPayload of the context digest for the address AttestedSigner.getAddress derives from policyId and userTag. The node also checks that the registry holds the program key as current in slot and that validUntil is within AttestedSigner.maxValidityWindow seconds of the block timestamp.
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.AttestedRpc
RPC-formatted attested signature, as the node serializes it (untagged).
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.Configurable
Configurable account signature (type 0x05).
Carries the account's complete current configuration and primitive owner approvals over its version-bound digest. The node validates the account identity or stored commitment and the owner quorum against chain state.
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.ConfigurableRpc
RLP-encoded [account, config, signatures], without the 0x05 type byte.
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.GetType
Statically determines the signature type of an envelope at compile time.
Examples
import type { SignatureEnvelope } from 'ox/tempo'
type Type = SignatureEnvelope.GetType<{ r: bigint; s: bigint; yParity: number }>
'secp256k1'Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.Keychain
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.KeychainRpc
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.KeychainVersion
Keychain signature version.
'v1': Legacy format. Inner signature signs the rawsig_hashdirectly. Deprecated at T1C. -'v2': Inner signature signskeccak256(sig_hash || user_address), binding the signature to the specific user account.
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.OwnerApproval
Signature envelope that can approve as a configurable account owner: a primitive signature, or an attested signature.
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.OwnerApprovalRpc
RPC-formatted signature envelope that can approve as a configurable account owner.
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.P256
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.P256Rpc
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.Primitive
Primitive signature envelope accepted by protocol sidecars.
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.PrimitiveRpc
RPC-formatted primitive signature envelope.
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.Secp256k1
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.Secp256k1Flat
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.Secp256k1Rpc
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.Serialized
Hex-encoded serialized signature envelope.
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.SignatureEnvelope
Represents a signature envelope that can contain different signature types.
Tempo transactions support multiple signature types, each with different wire formats:
-
secp256k1 (no type prefix, 65 bytes): Standard Ethereum ECDSA signature. The sender address is recovered via
ecrecover. Base transaction cost: 21,000 gas. -
p256 (type
0x01, 130 bytes): P256/secp256r1 curve signature for passkey accounts. Includes embedded public key (64 bytes) and prehash flag. Enables native WebCrypto key support. Additional gas cost: +5,000 gas over secp256k1. -
webAuthn (type
0x02, 129-2049 bytes): WebAuthn signature with authenticator data and clientDataJSON. Enables browser passkey authentication. The signature is also charged as calldata (16 gas/non-zero byte, 4 gas/zero byte). -
keychain (type
0x03V1,0x04V2): Access key signature that wraps an inner signature (secp256k1, p256, or webAuthn). Format: type byte + user_address (20 bytes) + inner signature. V2 binds the signature to the user account viakeccak256(sigHash || userAddress). The protocol validates the access key authorization via the AccountKeychain precompile. -
configurable (type
0x05): Configurable account signature carrying the account address, its complete current configuration, and primitive owner approvals over the version-bound digest. -
attested (type
0x06, experimental): Signature by a program key that the Attested Key Registry holds as current, for the address derived from a policy ID and a user tag (TIP-1160). Accepted as a transaction signature, a key authorization signature, and a configurable account owner approval. Rejected inside keychain signatures.
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.SignatureEnvelopeRpc
RPC-formatted signature envelope.
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.Type
Union type of supported signature types.
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.WebAuthn
Source: src/tempo/SignatureEnvelope.ts
SignatureEnvelope.WebAuthnRpc
Source: src/tempo/SignatureEnvelope.ts

