salt-sdk
    Preparing search index...

    Class AccountSetup

    Represents an in-progress account creation. Returned by Salt.createAccount after the vault is deployed and registered, but before the MPC huddle runs.

    Call waitForCompletion to enter the huddle, complete key generation, and finalize the vault. If you skip waitForCompletion, the account is saved on-chain and can be resumed later with Salt.resumeAccountSetup.

    Extends EventEmitter for lifecycle hooks — listen for events with .on() / .once().

    const setup = await salt.createAccount({
    name: 'Treasury',
    organisationId: 'org-id',
    signers: ['0xCreator', '0xCoSigner'],
    signer,
    });

    // accountId is available immediately
    console.log('Account ID:', setup.accountId);

    // Optional: listen for lifecycle events
    setup.on('huddleJoined', ({ accountId, isCreator, userAddress }) => console.log('Huddle started:', accountId, isCreator, userAddress));
    setup.on('huddleCompleted', ({ accountId, isCreator, userAddress }) => console.log('Huddle completed:', accountId, isCreator, userAddress));
    setup.on('accountLaunched', ({ account, isCreator, userAddress }) => console.log('Account launched:', account.publicKey, isCreator, userAddress));

    // Diagnostic events from the huddle itself
    setup.on('connected', (accountId) => console.log('Connected to huddle:', accountId));
    setup.on('preRegistered', (accountId) => console.log('Pre-registered:', accountId));
    setup.on('ready', (accountId) => console.log('Ready, waiting for other signers:', accountId));
    setup.on('registering', (accountId) => console.log('Key generation in progress:', accountId));
    setup.on('registered', (accountId) => console.log('Registered on-chain:', accountId));
    setup.on('signerStatusChanged', (statuses) => console.log('Signer statuses:', statuses));
    setup.on('timedOut', (accountId) => console.log('Huddle timed out:', accountId));

    // Run the MPC huddle and finalize
    const { account } = await setup.waitForCompletion();
    console.log('Public key:', account.publicKey);

    Hierarchy

    Index

    Properties

    accountId: string

    The Salt account ID, available immediately after vault deployment.

    prefixed: string | boolean

    Methods

    • Type Parameters

      • T extends (keyof HuddleEvents) | "huddleJoined" | "huddleCompleted" | "accountLaunched"

      Parameters

      • event: T
      • fn: (
            ...args: ArgumentMap<AccountSetupEvents>[Extract<
                T,
                | (keyof HuddleEvents)
                | "huddleJoined"
                | "huddleCompleted"
                | "accountLaunched",
            >],
        ) => void
      • Optionalcontext: any

      Returns this

    • Calls each of the listeners registered for a given event.

      Type Parameters

      • T extends (keyof HuddleEvents) | "huddleJoined" | "huddleCompleted" | "accountLaunched"

      Parameters

      • event: T
      • ...args: ArgumentMap<AccountSetupEvents>[Extract<
            T,
            | (keyof HuddleEvents)
            | "huddleJoined"
            | "huddleCompleted"
            | "accountLaunched",
        >]

      Returns boolean

    • Return an array listing the events for which the emitter has registered listeners.

      Returns ((keyof HuddleEvents) | "huddleJoined" | "huddleCompleted" | "accountLaunched")[]

    • Return the number of listeners listening to a given event.

      Parameters

      • event: (keyof HuddleEvents) | "huddleJoined" | "huddleCompleted" | "accountLaunched"

      Returns number

    • Return the listeners registered for a given event.

      Type Parameters

      • T extends (keyof HuddleEvents) | "huddleJoined" | "huddleCompleted" | "accountLaunched"

      Parameters

      • event: T

      Returns (
          (
              ...args: ArgumentMap<AccountSetupEvents>[Extract<
                  T,
                  | (keyof HuddleEvents)
                  | "huddleJoined"
                  | "huddleCompleted"
                  | "accountLaunched",
              >],
          ) => void
      )[]

    • Type Parameters

      • T extends (keyof HuddleEvents) | "huddleJoined" | "huddleCompleted" | "accountLaunched"

      Parameters

      • event: T
      • Optionalfn: (
            ...args: ArgumentMap<AccountSetupEvents>[Extract<
                T,
                | (keyof HuddleEvents)
                | "huddleJoined"
                | "huddleCompleted"
                | "accountLaunched",
            >],
        ) => void
      • Optionalcontext: any
      • Optionalonce: boolean

      Returns this

    • Add a listener for a given event.

      Type Parameters

      • T extends (keyof HuddleEvents) | "huddleJoined" | "huddleCompleted" | "accountLaunched"

      Parameters

      • event: T
      • fn: (
            ...args: ArgumentMap<AccountSetupEvents>[Extract<
                T,
                | (keyof HuddleEvents)
                | "huddleJoined"
                | "huddleCompleted"
                | "accountLaunched",
            >],
        ) => void
      • Optionalcontext: any

      Returns this

    • Add a one-time listener for a given event.

      Type Parameters

      • T extends (keyof HuddleEvents) | "huddleJoined" | "huddleCompleted" | "accountLaunched"

      Parameters

      • event: T
      • fn: (
            ...args: ArgumentMap<AccountSetupEvents>[Extract<
                T,
                | (keyof HuddleEvents)
                | "huddleJoined"
                | "huddleCompleted"
                | "accountLaunched",
            >],
        ) => void
      • Optionalcontext: any

      Returns this

    • Remove all listeners, or those of the specified event.

      Parameters

      • Optionalevent: (keyof HuddleEvents) | "huddleJoined" | "huddleCompleted" | "accountLaunched"

      Returns this

    • Remove the listeners of a given event.

      Type Parameters

      • T extends (keyof HuddleEvents) | "huddleJoined" | "huddleCompleted" | "accountLaunched"

      Parameters

      • event: T
      • Optionalfn: (
            ...args: ArgumentMap<AccountSetupEvents>[Extract<
                T,
                | (keyof HuddleEvents)
                | "huddleJoined"
                | "huddleCompleted"
                | "accountLaunched",
            >],
        ) => void
      • Optionalcontext: any
      • Optionalonce: boolean

      Returns this

    • Enter the MPC huddle, complete key generation, and finalize the vault.

      This blocks until all signers have completed the huddle or the timeout is reached.

      Returns Promise<CreateAccountResponse>

      The finalized account with publicKey set

      InsufficientGas if the signer lacks funds for gas

      HuddleTimeout if the huddle times out

      TransactionError if vault finalization fails

      const setup = await salt.createAccount({ ... });
      const { account } = await setup.waitForCompletion();
      console.log(account.publicKey);