Skip to main content
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)

Mechanism (shared platform)

The engine is the same Activity consensus state machine:
  1. Create a sub-organization with two root users (end-user authenticator + backend API key) and rootQuorumThreshold: 2, or
  2. 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:
  1. Parent org + API-only users
  2. Tags + deny-by-default policies
  3. approvers.count() >= N among operator passkeys
  4. Optional custodial send + Enterprise sponsorship