Validates that the Keyless Account can be used to sign transactions.
This initializes the asynchronous proof fetch.
Emits whether the proof succeeds or fails, but has no return.
Serializes the transaction data into a format suitable for transmission or storage. This function ensures that both the transaction bytes and the proof are properly serialized.
The serializer instance used to convert the transaction data into bytes.
Sign the given message using Keyless.
in HexInput format
Signature
Sign the given transaction with Keyless. Signs the transaction and proof to guard against proof malleability.
the transaction to be signed
KeylessSignature
Sign a transaction using Keyless.
the raw transaction
the AccountAuthenticator containing the signature of the transaction, together with the account's public key
Sign a message using Keyless.
the message to sign, as binary input
the AccountAuthenticator containing the signature, together with the account's public key
Note - This function is currently incomplete and should only be used to verify ownership of the KeylessAccount
Verifies a signature given the message.
TODO: Groth16 proof verification
the message that was signed.
the KeylessSignature to verify
boolean
Static
createCreates a KeylessAccount instance using the provided parameters. This function allows you to set up a KeylessAccount with specific attributes such as address, proof, and JWT. This is used instead of the KeylessAccount constructor.
The parameters for creating a KeylessAccount.
Optional
address?: AccountAddressOptional account address associated with the KeylessAccount.
The ephemeral key pair used in the account creation.
The address which stores the JSON Web Key Set (JWKS) used to verify the JWT.
A JSON Web Token used for authentication.
A Zero Knowledge Signature or a promise that resolves to one.
Optional
proofOptional callback function for fetching proof.
Optional
uidOptional key for user identification, defaults to "sub".
Optional
verificationStatic
deserializeDeserializes the provided deserializer to create a KeylessAccount instance. This function extracts necessary components such as the JWT, UID key, pepper, ephemeral key pair, and proof from the deserializer.
The deserializer instance used to retrieve the serialized data.
A KeylessAccount instance created from the deserialized data.
Static
fetchJWKFetches the JWK from the issuer's well-known JWKS endpoint.
The kid of the JWK to fetch
The keyless public key to query
A JWK matching the kid
in the JWT header.
Static
fromDeserialize bytes using this account's information.
The bytes being interpreted.
Static
partialOptional
verificationReadonly
accountAccount address associated with the account
Readonly
audThe value of the 'aud' claim on the JWT, also known as client ID. This is the identifier for the dApp's OIDC registration with the identity provider.
Readonly
ephemeralThe EphemeralKeyPair used to generate sign.
Readonly
jwtThe JWT token used to derive the account
Readonly
pepperA value contains 31 bytes of entropy that preserves privacy of the account. Typically fetched from a pepper provider.
The zero knowledge signature (if ready) which contains the proof used to validate the EphemeralKeyPair.
Readonly
proofThe proof of the EphemeralKeyPair or a promise that provides the proof. This is used to allow for awaiting on fetching the proof.
Readonly
publicThe FederatedKeylessPublicKey associated with the account
Readonly
signingSigning scheme used to sign transactions
Readonly
uidThe claim on the JWT to identify a user. This is typically 'sub' or 'email'.
Readonly
uidThe value of the uidKey claim on the JWT. This intended to be a stable user identifier.
Optional
Readonly
verificationThe hash of the verification key used to verify the proof. This is optional and can be used to check verifying key rotations which may invalidate the proof.
Static
Readonly
PEPPER_
Account implementation for the FederatedKeyless authentication scheme.
Used to represent a FederatedKeyless based account and sign transactions with it.
Use
FederatedKeylessAccount.create()
to instantiate a KeylessAccount with a JSON Web Token (JWT), proof, EphemeralKeyPair and the address the JSON Web Key Set (JWKS) are installed that will be used to verify the JWT.When the proof expires or the JWT becomes invalid, the KeylessAccount must be instantiated again with a new JWT, EphemeralKeyPair, and corresponding proof.