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

# Signing with a Business-Account Wallet

> Sign transactions and messages with a wallet owned by a business account.

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

A business-account wallet is a standard Dynamic embedded wallet. Once you're an active [signer](/docs/javascript/reference/business-accounts/manage-signers) on it, you sign the same way as with any embedded wallet.

## Sign with the wallet

Wallets you can sign for appear in `getWalletAccounts()`. Pass that `walletAccount` to the standard [`signMessage`](/docs/javascript/reference/wallets/sign-message) (or transaction-signing) calls — there's no business-account-specific signing API.

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

    const [walletAccount] = getWalletAccounts();
    const { signature } = await signMessage({ walletAccount, message: 'gm' });
    ```
  </Tab>

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

    const Sign = () => {
      const walletAccounts = useWalletAccounts();
      return (
        <button
          onClick={() =>
            signMessage({ walletAccount: walletAccounts[0], message: 'gm' })
          }
        >
          Sign
        </button>
      );
    };
    ```
  </Tab>
</Tabs>

<Info>
  Only active signers can sign. Being an admin or viewer does not grant signing access — see [Members & roles](/docs/javascript/reference/business-accounts/members-and-roles).
</Info>

<Tip>
  If a newly linked or created wallet doesn't show up yet, refresh authentication so your session picks it up before signing.
</Tip>

## Related

<CardGroup cols={2}>
  <Card title="Manage signers" icon="key" href="/docs/javascript/reference/business-accounts/manage-signers">
    Ensure the caller holds an active share.
  </Card>

  <Card title="Sign a message" icon="signature" href="/docs/javascript/reference/wallets/sign-message">
    The standard signing primitive, used unchanged here.
  </Card>
</CardGroup>
