Module 1: Accounts & Wallet Orchestration Available

Accounts with identity, permissions, and recovery.

The accounts module gives every human and business a single account with unified identity, scoped permissions, delegated access, and a recovery model you choose. Today the proof rail is ERC-4337 smart-contract wallets with passkeys and gasless flows, non-custodial, multi-chain, and embedded under your own brand and license. The same account record carries through routing, settlement, policy, and audit.

What the account model gives you.

Unified identity

One account record per end-user or business, referenced consistently across every module. Your KYC/KYB stack feeds it the verified identity; the account carries it forward.

Permissions & delegated access

Scope what each account, team member, or delegate is allowed to do. Grant time-boxed, limited authority without handing over the root key.

Recovery you control

Passkey only, passkey plus social, or passkey plus MPC. You pick the recovery model that fits your license and your jurisdiction.

Passkey onboarding

No seed phrase, no extension install. WebAuthn plus platform biometric. A login flow your compliance and product teams already approve of.

Gasless flows

You sponsor network fees through paymaster-backed transactions; the end-user never sees ETH. Recover the cost through your pricing tier or transaction flow.

Non-custodial by default

OVAAL does not custody end-user funds. Custody, where applicable, is provided by the partner or an authorised provider. Liability stays partner-side; funds stay end-user-side.

The proof rail: AA smart-contract wallets.

Account orchestration is the module. ERC-4337 wallets are the rail that proves it ships today.

Partner app UI

Your brand. Your KYC. Your identity stack.

OVAAL accounts module

Identity, permissions, recovery, AA orchestration, paymaster policy, session keys.

End-user's key

Passkey or MPC share. Non-custodial. On-chain smart account.

Base, Arbitrum, Optimism, and Ethereum are supported in production. Additional chains and account rails ship per partner demand. The wallet rail is one execution path beneath the accounts module, not the module itself.

import { OvaalClient } from '@ovaal/sdk';

const ovaal = new OvaalClient({
  apiKey: process.env.OVAAL_API_KEY,
  partnerId: 'prt_...',
  environment: 'staging',
});

const account = await ovaal.accounts.create({
  partnerUserId: 'user_abc123',
  rail: 'aa-wallet',
  chain: 'base',
  recovery: { type: 'passkey' },
  policy: {
    maxTxValueUsd: 10_000,
    dailyCapUsd: 50_000,
    jurisdiction: 'DE',
  },
});
// Returns: { accountId, address, recoveryHandle }

Choices you can defend.

  • Non-custodial by default. OVAAL does not hold end-user keys or funds. The end-user's passkey or MPC share holds signing authority. Custody, where applicable, sits with the partner or an authorised provider.
  • Audited contracts. Smart-account implementations undergo independent security review; reports are available to signed partners under NDA. See our security overview.
  • Scoped access. Delegated and session-based access cannot exceed the policy you set. Hard caps per transaction and per day, with a maximum time-to-live.
  • Recovery on your terms. Pick the recovery model per jurisdiction and per product. The account model adapts; you keep control.
  • Revocation. Revoke any delegated or session key immediately via API, with a full audit trail.

Under your control.

What the partner keeps:

  • Identity: your KYC/KYB stack feeds the verified user ID into the account record
  • Account and wallet UI: white-label or fully custom; OVAAL ships reference components, not a finished UI
  • Recovery policy: passkey only, passkey plus social, or passkey plus MPC, per jurisdiction
  • Compliance hooks: subscribe to webhooks for every account operation; pause or reverse per your policy

Map the accounts module to your stack.