SKU boundary. Company Wallets default to organization multi-party approvals (API users + human operators in the same org). End-user passkey plus backend API key (2/2) is a hybrid / Embedded-adjacent pattern. Use it only when you intentionally share custody with an end user.
When to use this pattern
- Business wallets where the end user must approve every spend
- Compliance flows that require user presence + server automation
- Migrating from a co-custody model without moving to full custodial Company automation
When not to use it
- Pure treasury / payment orchestration (use org consensus + API keys)
- High-volume backend sweeps (user presence does not scale)
The engine is the same Activity consensus state machine:
- Create a sub-organization with two root users (end-user authenticator + backend API key) and
rootQuorumThreshold: 2, or
- Use a policy
consensus expression that requires both actors
Typical flow: client stamps with passkey → activity enters CONSENSUS_NEEDED → backend calls approveActivity → enclave signs.
Related reading:
Company Wallets default instead
For institutional automation, prefer:
- Parent org + API-only users
- Tags + deny-by-default policies
approvers.count() >= N among operator passkeys
- Optional custodial send + Enterprise sponsorship