OmnesMSA API Docs
Getting started

Introduction to Account Abstraction

Learn about Account Abstraction, wallet custody types, and how MSA API empowers developers to build secure wallet solutions.

Account Abstraction (AA) represents a paradigm shift in how wallets work on Ethereum and EVM-compatible blockchains. Instead of relying solely on Externally Owned Accounts (EOAs) controlled by private keys, Account Abstraction enables programmable smart contract wallets with customizable validation logic.

What is Account Abstraction?

Traditional Ethereum accounts have limitations:

  • Single signature requirement: Only one private key controls the account
  • Fixed gas payment: Only ETH can be used to pay for gas
  • Limited recovery options: Lose your private key, lose your wallet
  • Poor UX: Complex transaction signing flow

Account Abstraction solves these problems by making wallets programmable smart contracts that can:

  • Use multiple signature schemes (ECDSA, passkeys, multi-sig)
  • Pay gas with any ERC-20 token via paymasters
  • Implement custom recovery mechanisms
  • Batch multiple operations into a single transaction
  • Provide familiar Web2-like user experiences

How MSA API Works

The MSA API abstracts the complexity of Account Abstraction, providing developers with simple REST endpoints to:

1. Create Wallets

Deploy smart contract wallets with various custody options:

// Using API HTTP (fetch) for wallet creation
const response = await fetch('https://api.msa.omnes.tech/create', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    accounts: [{
      walletCustody: 3, // ECDSA_PASSKEY_VALIDATOR
      salt: "user@example.com",
      passkeyPubKey: ["base64-encoded-key"]
    }],
    settings: { /* ... */ }
  })
});
const wallet = await response.json();

2. Execute Transactions

Send UserOperations through the Entry Point contract:

// Using SmartWallet SDK for transaction execution
import { PKSigner, SmartWallet, AccountOperations, Operation } from '@omnes/smartwallet-ts-sdk';

const signer = await PKSigner.create(privateKey as `0x${string}`);
const smartWallet = await SmartWallet.create(
    signer.signMessage,
    signer.signMessage,
    signer.getEVMAddress(),
    rpcURL,
    apiKey
);

const operations: Operation = {
    to: "0x...", // Token contract
    value: BigInt(0),
    funcSignature: "transfer(address,uint256)",
    params: ["0x...", 1000000000000000000] // 1 token
};

const accountOperations: AccountOperations[] = [{
    account: {
        walletCustody: 1,
        salt: "user@example.com",
        publicKeys: []
    },
    operations: [operations],
    settings: {}
}];

const result = await smartWallet.buildAndRequestSendUserOperations(
    accountOperations,
    [],
    []
);

3. Manage Security

Configure validators, signers, and recovery mechanisms:

// Add a new signer to a multisig wallet
const result = await msaClient.addSigner({
  to: walletAddress,
  funcSignature: "addSigner(address,(bool,bool,bool,bool))",
  funcParams: [
    newSignerAddress,
    [true, true, true, true] // Permissions
  ]
});

Key Concepts

Custody Types

MSA API supports five custody configurations:

1. ECDSA_VALIDATOR (Traditional)

  • Standard ECDSA signature validation
  • Similar to traditional wallets
  • Good for simple use cases

2. ECDSA_PASSKEY_VALIDATOR (Hybrid)

  • Combines ECDSA signatures with passkey authentication
  • Enhanced security through biometric verification
  • Ideal for consumer applications

3. PASSKEY_VALIDATOR (Biometric)

  • Pure passkey-based authentication
  • No private keys to manage
  • Perfect for Web2-native experiences

4. MULTISIG_VALIDATOR (Shared Control)

  • Traditional M-of-N multi-signature setup
  • Shared custody between multiple parties
  • Essential for organizational use

5. MULTISIG_PASSKEY_VALIDATOR (Enterprise)

  • Multi-signature with passkey support
  • Maximum security for high-value scenarios
  • Combines shared control with biometric auth

Entry Points and UserOperations

Account Abstraction uses a standardized flow:

  1. UserOperation: A structure containing transaction intent
  2. Entry Point: Smart contract that validates and executes UserOperations
  3. Bundler: Service that submits UserOperations to the Entry Point
  4. Paymaster: Optional contract that sponsors gas payments
graph LR
    A[User Intent] --> B[UserOperation]
    B --> C[MSA API]
    C --> D[Bundler]
    D --> E[Entry Point]
    E --> F[Smart Wallet]
    F --> G[Target Contract]

Gas Management

MSA API handles gas optimization automatically:

  • Gas Estimation: Predicts gas costs before execution
  • Gas Overshoot: Configurable buffer to prevent failures
  • Paymaster Integration: Support for sponsored transactions
  • Multi-chain: Optimized for different network conditions

Security Features

HSM/MPC Integration

  • Hardware Security Module support
  • Multi-Party Computation signing
  • Enterprise-grade key management
  • Fireblocks integration

Validation Layers

  • Custom signature validation logic
  • Time-based restrictions
  • Spending limits
  • Recovery mechanisms

Audit Trail

  • Complete transaction history
  • Signature verification logs
  • Gas usage analytics
  • Error tracking

Benefits for Developers

Simplified Integration

  • RESTful API design
  • TypeScript SDK with full type safety
  • HTTP examples for other languages
  • Extensive documentation

Multi-Language Support

  • TypeScript SDK: Full-featured SDK (@omnes/smartwallet-ts-sdk)
  • HTTP Examples: JavaScript (fetch), Python (requests), cURL
  • OpenAPI Specification: For custom integrations

Testing & Development

  • Testnet support
  • Sandbox environments
  • Transaction simulation
  • Gas estimation tools

Enterprise Ready

  • High availability infrastructure
  • Rate limiting and quotas
  • Monitoring and alerting
  • SLA guarantees

Use Cases

Consumer Applications

  • Passwordless wallet onboarding
  • Biometric transaction signing
  • Gas-sponsored user experiences
  • Social recovery mechanisms

Enterprise Solutions

  • Multi-signature treasury management
  • Automated payment processing
  • Compliance-friendly workflows
  • Integration with existing systems

DeFi Integration

  • Smart contract wallet compatibility
  • Token approvals and transfers
  • Liquidity pool interactions
  • Yield farming automation

Gaming & NFTs

  • In-game asset management
  • Gasless microtransactions
  • Batch NFT operations
  • Player-owned economies

Next Steps

Now that you understand the fundamentals, you're ready to:

  1. Set up Authentication - Configure your API credentials
  2. Quick Start Guide - Create your first wallet
  3. Explore Wallet Management - Learn advanced wallet features

๐Ÿ” Deep Dive: Want to learn more about Account Abstraction? Check out EIP-4337 for the technical specification.