> ## Documentation Index
> Fetch the complete documentation index at: https://www.dynamic.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Add Wallets to a Business Account

> Create a fresh business-account wallet, or bring an existing embedded wallet under the account.

<Note>
  Business Accounts are in **early access**. See the [overview](/docs/javascript/reference/business-accounts/overview) for the model.
</Note>

There are two ways to give a business account a wallet:

* **Create a fresh wallet** owned by the account from the start.
* **Link an existing** embedded wallet you already own, so the team can share it.

Either way, the account owns the wallet (not a single user), and you become its first [signer](/docs/javascript/reference/business-accounts/manage-signers).

## Create a fresh wallet

`createWalletForBusinessAccount` creates a new embedded wallet owned by the account.

<Tabs>
  <Tab title="JavaScript">
    ```javascript theme={"system"}
    import { createWalletForBusinessAccount } from '@dynamic-labs-sdk/client/waas';

    const wallet = await createWalletForBusinessAccount({
      businessAccountId: account.id,
      chain: 'EVM',
    });
    ```
  </Tab>
</Tabs>

<ParamField path="businessAccountId" type="string" required>
  The account that will own the wallet.
</ParamField>

<ParamField path="chain" type="Chain" required>
  The chain to create the wallet on (e.g. `EVM`, `SOL`).
</ParamField>

<ParamField path="password" type="string">
  Optional passphrase used to encrypt the caller's key share.
</ParamField>

<ParamField path="thresholdSignatureScheme" type="ThresholdSignatureScheme">
  Optional signing scheme; defaults to the environment's configuration.
</ParamField>

## Link an existing wallet

`addWalletToBusinessAccount` links a wallet you already own into the account. It returns the updated account, including members, signers, and wallets.

<Tabs>
  <Tab title="JavaScript">
    ```javascript theme={"system"}
    import { addWalletToBusinessAccount } from '@dynamic-labs-sdk/client/waas';

    const detail = await addWalletToBusinessAccount({
      walletId,
      businessAccountId: account.id,
    });
    ```
  </Tab>

  <Tab title="React">
    ```tsx theme={"system"}
    import { useAddWalletToBusinessAccount } from '@dynamic-labs-sdk/react-hooks';

    const LinkWallet = ({ walletId, businessAccountId }) => {
      const { mutate, isPending } = useAddWalletToBusinessAccount();
      return (
        <button onClick={() => mutate({ walletId, businessAccountId })} disabled={isPending}>
          Link wallet
        </button>
      );
    };
    ```
  </Tab>
</Tabs>

<Info>
  `businessAccountId` is optional when linking. If omitted, the wallet is linked into its per-wallet business account (found or created automatically). Pass it explicitly to link into a specific account you own or administer.
</Info>

<Warning>
  Only the wallet's owner can link it, and a wallet can belong to **one** business account — linking a wallet that already belongs to a different account is rejected.
</Warning>

## Next steps

<CardGroup cols={2}>
  <Card title="Manage signers" icon="key" href="/docs/javascript/reference/business-accounts/manage-signers">
    Add teammates or agents as signers on the wallet.
  </Card>

  <Card title="Sign transactions" icon="signature" href="/docs/javascript/reference/business-accounts/signing">
    Sign with a business-account wallet.
  </Card>
</CardGroup>
