> ## 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 in Swift with a wallet owned by a business account.

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

A business-account wallet is a standard Dynamic embedded wallet. Once you are an active [signer](/docs/swift/business-accounts/manage-signers) on it, you sign the same way as with any embedded wallet. There is no business-account-specific signing API.

## Sign with the wallet

Wallets you can sign for appear in `sdk.wallets.userWallets`. Match one against the account's wallets, then pass it to the standard signing calls.

```swift theme={"system"}
import DynamicSDKSwift

let sdk = DynamicSDK.instance()

let detail = try await sdk.businessAccounts.get(businessAccountId: account.id)
let accountWalletIds = Set((detail.wallets ?? []).map { $0.id })

guard let wallet = sdk.wallets.userWallets.first(where: { candidate in
    guard let id = candidate.id else { return false }
    return accountWalletIds.contains(id)
}) else { return }

let signature = try await sdk.wallets.signMessage(wallet: wallet, message: "gm")
```

For transactions, use the chain module that matches the wallet: [EVM](/docs/swift/wallets/evm/send-eth) or [Solana](/docs/swift/wallets/solana/send-transactions).

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

<Tip>
  If a newly linked wallet does not appear in `sdk.wallets.userWallets` yet, refresh authentication so the session picks it up before signing. You can observe `sdk.wallets.userWalletsChanges` to react when it arrives.
</Tip>

## Related

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

  <Card title="Message signing" icon="signature" href="/docs/swift/wallets/evm/message-signing">
    The standard signing primitive, used unchanged here.
  </Card>
</CardGroup>
