@aptos-labs/ts-sdk - v5.1.4
    Preparing search index...

    Class KeylessAccount

    Account implementation for the Keyless authentication scheme.

    Used to represent a Keyless based account and sign transactions with it.

    Use KeylessAccount.create() to instantiate a KeylessAccount with a JWT, proof and EphemeralKeyPair.

    When the proof expires or the JWT becomes invalid, the KeylessAccount must be instantiated again with a new JWT, EphemeralKeyPair, and corresponding proof.

    Hierarchy (View Summary)

    Index

    Implementation - Account (On-Chain Model)

    • Use the static generator create(...) instead. Creates an instance of the KeylessAccount with an optional proof.

      Parameters

      • args: {
            address?: AccountAddress;
            aud: string;
            ephemeralKeyPair: EphemeralKeyPair;
            iss: string;
            jwt: string;
            pepper: HexInput;
            proof: ZeroKnowledgeSig | Promise<ZeroKnowledgeSig>;
            proofFetchCallback?: ProofFetchCallback;
            uidKey: string;
            uidVal: string;
            verificationKeyHash?: HexInput;
        }

        The parameters for creating a KeylessAccount.

        • Optionaladdress?: AccountAddress

          Optional account address associated with the KeylessAccount.

        • aud: string

          The 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.

        • ephemeralKeyPair: EphemeralKeyPair

          The ephemeral key pair used in the account creation.

        • iss: string

          A JWT issuer.

        • jwt: string

          A JSON Web Token used for authentication.

        • pepper: HexInput

          A hexadecimal input used for additional security.

        • proof: ZeroKnowledgeSig | Promise<ZeroKnowledgeSig>

          A Zero Knowledge Signature or a promise that resolves to one.

        • OptionalproofFetchCallback?: ProofFetchCallback

          Optional callback function for fetching proof.

        • uidKey: string

          The claim on the JWT to identify a user. This is typically 'sub' or 'email'.

        • uidVal: string

          The unique id for this user, intended to be a stable user identifier.

        • OptionalverificationKeyHash?: HexInput

      Returns KeylessAccount

    accountAddress: AccountAddress

    Account address associated with the account

    aud: string

    The 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.

    ephemeralKeyPair: EphemeralKeyPair

    The EphemeralKeyPair used to generate sign.

    jwt: string

    The JWT token used to derive the account

    pepper: Uint8Array

    A value contains 31 bytes of entropy that preserves privacy of the account. Typically fetched from a pepper provider.

    proof: undefined | ZeroKnowledgeSig

    The zero knowledge signature (if ready) which contains the proof used to validate the EphemeralKeyPair.

    proofOrPromise: ZeroKnowledgeSig | Promise<ZeroKnowledgeSig>

    The proof of the EphemeralKeyPair or a promise that provides the proof. This is used to allow for awaiting on fetching the proof.

    publicKey: KeylessPublicKey

    The KeylessPublicKey associated with the account

    signingScheme: SigningScheme = SigningScheme.SingleKey

    Signing scheme used to sign transactions

    uidKey: string

    The claim on the JWT to identify a user. This is typically 'sub' or 'email'.

    uidVal: string

    The value of the uidKey claim on the JWT. This intended to be a stable user identifier.

    • 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.

      Parameters

      • serializer: Serializer

        The serializer instance used to convert the transaction data into bytes.

      Returns void

    • Verify the given message and signature with the public key. It fetches any on chain state if needed for verification.

      Parameters

      • args: {
            aptosConfig: AptosConfig;
            message: HexInput;
            options?: { throwErrorWithReason?: boolean };
            signature: KeylessSignature;
        }

        The arguments for verifying the signature.

        • aptosConfig: AptosConfig

          The configuration object for connecting to the Aptos network

        • message: HexInput

          Raw message data in HexInput format.

        • Optionaloptions?: { throwErrorWithReason?: boolean }
        • signature: KeylessSignature

          Signed message signature.

      Returns Promise<boolean>

      A boolean indicating whether the signature is valid.

    • Deserializes 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.

      Parameters

      • deserializer: Deserializer

        The deserializer instance used to retrieve the serialized data.

      Returns KeylessAccount

      A KeylessAccount instance created from the deserialized data.

    Implementation - BCS

    • Serializes a Serializable value to its BCS representation. This function is the TypeScript SDK equivalent of bcs::to_bytes in Move.

      Returns Uint8Array

      the BCS representation of the Serializable instance as a byte buffer.

    • Converts the BCS-serialized bytes of a value into a Hex instance. This function provides a Hex representation of the BCS-serialized data for easier handling and manipulation.

      Returns Hex

      A Hex instance with the BCS-serialized bytes loaded into its underlying Uint8Array.

    Methods

    Properties

    verificationKeyHash?: Uint8Array<ArrayBufferLike>

    The 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.

    PEPPER_LENGTH: number = 31