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.
Example
Section titled “Example”const signer = EphemeralKeySigner.generate();const signed = await signTransaction([signer], unsignedTx);Implements
Section titled “Implements”Signer
Properties
Section titled “Properties”address
Section titled “address”
readonlyaddress:string
Defined in: ootle-secret-key-wallet/src/ephemeral-key-signer.ts:27
Methods
Section titled “Methods”getAddress()
Section titled “getAddress()”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.
Returns
Section titled “Returns”Promise<string>
Implementation of
Section titled “Implementation of”Signer.getAddress
getPublicKey()
Section titled “getPublicKey()”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.
Returns
Section titled “Returns”Promise<Uint8Array<ArrayBufferLike>>
Implementation of
Section titled “Implementation of”Signer.getPublicKey
signTransaction()
Section titled “signTransaction()”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.
Parameters
Section titled “Parameters”unsignedTx
Section titled “unsignedTx”UnsignedTransactionV1
sealPublicKey
Section titled “sealPublicKey”Uint8Array
Returns
Section titled “Returns”Promise<TransactionSignature[]>
Implementation of
Section titled “Implementation of”Signer.signTransaction
generate()
Section titled “generate()”
staticgenerate(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.
Parameters
Section titled “Parameters”network?
Section titled “network?”Network = Network.Esmeralda
Returns
Section titled “Returns”EphemeralKeySigner