Skip to content

EphemeralKeySigner

Defined in: ootle-secret-key-wallet/src/ephemeral-key-signer.ts:24

A one-shot signer that generates a fresh throwaway keypair, signs once, and exposes no way to reuse the key. Used for privacy-preserving transactions where the sender wants no link between the transaction and their identity.

No stealth spending support by design. This signer holds no view key, so it deliberately does not implement the optional Signer.getViewSecret/ Signer.addStealthSignature members. Stealth scanning and one-time spend-key signing require a view secret + owner secret pair — use SecretKeyWallet for that.

const signer = EphemeralKeySigner.generate();
const signed = await signTransaction([signer], unsignedTx);
  • Signer

readonly address: string

Defined in: ootle-secret-key-wallet/src/ephemeral-key-signer.ts:27

getAddress(): Promise<string>

Defined in: ootle-secret-key-wallet/src/ephemeral-key-signer.ts:51

Returns the component address derived from this signer’s public key.

Promise<string>

Signer.getAddress


getPublicKey(): Promise<Uint8Array<ArrayBufferLike>>

Defined in: ootle-secret-key-wallet/src/ephemeral-key-signer.ts:55

Returns the raw public key bytes for this signer.

Promise<Uint8Array<ArrayBufferLike>>

Signer.getPublicKey


signTransaction(unsignedTx, sealPublicKey): Promise<TransactionSignature[]>

Defined in: ootle-secret-key-wallet/src/ephemeral-key-signer.ts:59

Signs the given unsigned transaction and returns the collected signatures.

sealPublicKey is mixed into the transaction hash (hashUnsignedTransaction(JSON.stringify(tx), sealPublicKey)) so every signature in the final envelope verifies against the SAME hash — the engine’s seal verification enforces this. Implementations MUST hash with the supplied sealPublicKey, not their own.

UnsignedTransactionV1

Uint8Array

Promise<TransactionSignature[]>

Signer.signTransaction


static generate(network?): EphemeralKeySigner

Defined in: ootle-secret-key-wallet/src/ephemeral-key-signer.ts:44

Generates a fresh ephemeral keypair. The secret key exists only for the lifetime of this object and is never persisted.

The WASM generateKeypair already returns 32-byte halves; the explicit assertion is defence-in-depth so an upstream WASM regression surfaces here rather than silently mis-signing further down the line.

Network = Network.Esmeralda

EphemeralKeySigner