---
title: "Account Abstraction Development"
canonical: https://wavect.io/services/account-abstraction-development/
language: en
description: "ERC-4337 and account abstraction development. Smart accounts, paymasters, bundler integration, session keys, passkeys and social recovery, shipped to production."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

Account Abstraction

# Account Abstraction Development

Smart accounts, gas sponsorship and recovery that survive contact with real users. We have shipped account abstraction to production alongside Boba Network's team, including natively inside MetaMask.

- 3 SDKs Backend, contract and frontend, reverse-engineered from undocumented infrastructure and still live [See the case study](/case-studies/account-abstraction/)
- MetaMask Account abstraction brought natively into the wallet users already trust [See the case study](/case-studies/metamask-snap/)

// 01

## What We Do

Account abstraction is easy to demo and hard to operate. The difficulty is not the smart account, it is sponsorship economics, abuse, and recovery when a real user loses a device.

Smart Account Implementation

ERC-4337 accounts, either from a proven base or custom where you need it.

- Safe, Kernel and ZeroDev evaluated against your case
- Custom validation logic where the base does not fit
- Deterministic addresses and counterfactual deployment
- Migration from existing EOA users

Paymasters and Sponsorship

Gasless is a business decision before it is a technical one.

- Sponsorship policy tied to real unit economics
- Abuse prevention and rate limiting
- ERC-20 paymasters for pay-in-token flows
- Spend caps, alerting and kill switches

Bundler and Infrastructure Integration

The parts that break quietly in production.

- Bundler selection and fallback
- EntryPoint version handling
- UserOperation debugging and observability
- Self-hosted versus managed trade-offs

Session Keys, Passkeys and Recovery

The UX that makes a smart account worth having.

- Scoped session keys with real expiry
- Passkey and WebAuthn signers
- Social and guardian recovery
- Device loss handled as a normal case

Production Support

We have run this against infrastructure that changed under us without notice.

- Monitoring on sponsorship spend and failure rates
- Upgrades across EntryPoint revisions
- Incident response under retainer
- SDK maintenance as the spec moves

// 02

## How we approach account abstraction

We engineered Boba Network’s [three-layer Hybrid Compute SDK suite](/case-studies/account-abstraction/) together with the Boba team, against infrastructure with no documentation and no specs, patching live infra errors as we went, and then brought that stack [natively into MetaMask](/case-studies/metamask-snap/) with them. That is the difference between having read the spec and having operated it. Our engineering notes on the trade-offs are in [account abstraction in production](/blog/account-abstraction-erc4337-production/), the [browser-local UserOperation debugger](/tools/erc-4337-useroperation-debugger/) handles concrete failing artifacts, and the hub page is [Web3 and blockchain development](/services/blockchain/).

// 03

## When account abstraction is not worth it

Skip it when your users are already comfortable with a wallet and the transaction volume per user is low. The smart-account deployment cost, the paymaster balance you have to fund, and the extra failure surface all have to be paid for by something. If your product has few high-value transactions from crypto-native users, a plain EOA and a good signing UX will beat a smart account on both cost and reliability. Sponsorship in particular is a recurring expense that scales with abuse, not with revenue, unless you design the policy carefully.

// proof

## Proof, not promises

### [Account Abstraction](/case-studies/account-abstraction/)
- **Status:** Live
- **Outcome:** 3 SDKs - Backend · Contract · Frontend
- **Summary:** Three-layer Hybrid Compute SDK suite (backend, contract, frontend), built with Boba's team against undocumented infra, still in …
- **Stack:** Typescript, Solidity, Hardhat

### [MetaMask Snap](/case-studies/metamask-snap/)
- **Status:** Live
- **Outcome:** MetaMask - Native Integration
- **Summary:** Smart wallets with Hybrid Compute, inside the wallet users already trust, built with Boba's team against MetaMask's Snap sandbox.
- **Stack:** Typescript, MetaMask Snaps, Solidity

### [Scramble Wallet](/case-studies/scramble-wallet/)
- **Status:** Live
- **Outcome:** 50+ - Target User Age
- **Summary:** Multi-browser extension, Tron added, iOS + Android via multiple routes, built on a forked Enkrypt, debt paid down release by …
- **Stack:** VueJS, Typescript, NestJS

These are selected projects, not our full portfolio. We have shipped 75+ products since 2018.

### What clients say

Google

**THE agency to go for blockchain development.** Super experienced and highly professional team. Love to work with them.

Read more →

Richard Leitgeb

Original

For technical questions on blockchain and NFT, I always come back to Kevin. He has familiarized himself very well in this area, and the expertise he brings is certainly essential for projects like these. I can only recommend everyone get in touch with Kevin on these topics." data-quote-original=" **Bei Fragen zu Blockchain und NFT greife ich bei technischen Fragestellungen gerne immer wieder auf Kevin zurück.** Er hat sich hier sehr gut eingearbeitet und die Expertise, die er mitbringt, ist für derartige Projekte mit Sicherheit unerlässlich. Kann deshalb nur jedem empfehlen, sich zu diesen Themen mit Kevin in Verbindung zu setzen." data-original-lang=de>

LinkedIn

**For technical questions on blockchain and NFT, I always come back to Kevin.** He has familiarized himself very well in this area, and the expertise he brings is certainly essential for projects like these. I can only recommend everyone get in touch with Kevin on these topics.

Read more →

Fritz Fahringer Klarheit vor KI

Translated · tap for original

Trustpilot

**Experts in smart contract development.**

Read more →

CJ

Original

Independently rated 4.5/5 on Trustpilot [Read the reviews](https://www.trustpilot.com/review/wavect.io)

[![Clutch Top Web3 Development in Austria 2026 award for Wavect](/img/awards/clutch-top-web3-development-austria-2026_hu_92ea6d2c36d12863.webp) Verified on Clutch · 2026 Top Web3 Development in Austria View our Clutch profile](https://clutch.co/profile/wavect-gmbh) [![Clutch Top Blockchain Company in Austria 2026 award for Wavect](/img/awards/clutch-top-blockchain-company-austria-2026_hu_f3bd0de76b443d6d.webp) Verified on Clutch · 2026 Top Blockchain Company in Austria View our Clutch profile](https://clutch.co/profile/wavect-gmbh)

## FAQs

Honest answers about ERC-4337 delivery

### How does the weekly cancellation actually work?

End any week, with one message. No notice period, no exit interview, no fine print. We invoice weekly, so the most you’re ever committed to is the current week.

### What if I'm not blown away by the work?

It’s in your contract: tell us, and we refund that week. No questions, no invoices to dispute, no calls to escalate. The only rule: refunds apply to the most recent week.

### Why don't you track hours?

Because hours are the wrong metric. If we optimize for hours billed, we do not optimize for your outcome. The deal is simpler: every week has a defined result, and we earn the next week by delivering it. You pay for progress against that result, not for a timesheet.

### What does 'expectations detached from reality' mean?

We work with operators, not lottery winners. If a request would require breaking physics, the law, or a third party’s systems, we say so, and if we can’t align, we walk. The guarantee is mutual: you can fire us any week; we can also fire ourselves.

### How much does an ERC-4337 implementation cost?

A straightforward integration on an existing account implementation with a managed bundler and a simple sponsorship policy is typically four to eight weeks. A custom account with its own validation logic, a paymaster with real abuse controls, and a cross-platform wallet is more like three to six months. Production-grade account abstraction sits in the same band as our other infrastructure work, starting around €100k. The largest cost drivers are custom validation, sponsorship policy, recovery, and integration with an application that already has users.

### Should we build a smart account or use Safe, Kernel or ZeroDev?

Use the existing implementation unless you have a specific reason not to. They are audited, widely deployed, and someone else maintains them across EntryPoint upgrades. Custom becomes justified when your validation logic genuinely does not fit, for example unusual multi-party signing or compliance constraints. We will tell you which case you are in before you pay us to build anything.

### Who pays the gas, and what stops people from draining the paymaster?

You do, and nothing, unless the policy is designed for it. A paymaster is a funded account that strangers can spend. We scope sponsorship to specific contracts and function selectors, cap spend per user and per period, add rate limiting, and alert on burn rate. Treat the sponsorship budget as a line item with a monthly number, not as a technical detail.

### Can you make this work inside MetaMask rather than a new wallet?

Yes. That is exactly what the [MetaMask Snap](/case-studies/metamask-snap/) does: it brings Boba Network’s account abstraction and Hybrid Compute smart wallets into the wallet users already have, built with Boba Network’s team against MetaMask’s Snap sandbox. Asking users to install a new wallet is a real conversion cost, and often an avoidable one.

### What happens when a user loses their device?

Whatever you designed for, which is why it has to be designed. Options are guardian-based social recovery, a passkey synced through the platform keychain, or a time-locked recovery key. Each trades security against support burden differently. Picking one late, after users hold real balances, is considerably more expensive than picking one early.

// More in

## More in Web3 & Blockchain

### [Web3 & Blockchain](/services/blockchain/)

The hub: dApps, payments, scaling and the chains we ship on. Routes to the capability you actually need.

### [Smart Contract Development](/services/smart-contract-development/)

Solidity and Rust from architecture through mainnet, with third-party audit coordination and monitoring.

### [Web3 Wallets](/services/web3-wallet-development/)

Smart, embedded and invisible wallets, plus MetaMask Snaps. Non-custodial by default.

### [Cross-Chain Bridges](/services/cross-chain-bridge-development/)

We built a six-chain production bridge, which is mostly why we will tell you when not to build one.

### [Zero-Knowledge](/services/zero-knowledge/)

Privacy by cryptographic proof, not policy: ZK identity, private transactions, and ZK rollups.

// Get to know us

## Get to know us

Long-term relationships over quick wins.

[![Blogs](/img/services/gtku_blogs_hu_d7e3f659443e93f9.webp) Read our Blog](/blog/overview/) [![No BS Around Tech Podcast](/img/services/gtku_podcast_hu_aac94ba51d8a6f9f.webp) No BS Around Tech Podcast](/#trust-podcast) [![Image Gallery](/img/services/gtknu_gallery_hu_451025d2d15b7558.webp) Get some Impressions](/#image-gallery)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/verified-claims.json#boba-hybrid-compute-sdks",
      "@type": "Claim",
      "appearance": {
        "@id": "https://wavect.io/services/account-abstraction-development/#webpage",
        "@type": "WebPage",
        "inLanguage": "en",
        "url": "https://wavect.io/services/account-abstraction-development/"
      },
      "author": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "dateModified": "2026-08-04",
      "identifier": "boba-hybrid-compute-sdks",
      "inLanguage": "en",
      "text": "Wavect engineered 3 production SDKs for Boba Network Hybrid Compute (backend, contract and frontend) together with Boba Network's team, reverse-engineered from undocumented infrastructure and still live."
    },
    {
      "@id": "https://wavect.io/verified-claims.json#metamask-snap-native-smart-wallets",
      "@type": "Claim",
      "appearance": {
        "@id": "https://wavect.io/services/account-abstraction-development/#webpage",
        "@type": "WebPage",
        "inLanguage": "en",
        "url": "https://wavect.io/services/account-abstraction-development/"
      },
      "author": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "dateModified": "2026-08-04",
      "identifier": "metamask-snap-native-smart-wallets",
      "inLanguage": "en",
      "text": "Wavect engineered a MetaMask Snap inside Boba Network's build, together with their team, bringing Boba Network's account abstraction and Hybrid Compute smart wallets natively into MetaMask."
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/services/account-abstraction-development/#service",
      "@type": "Service",
      "areaServed": [
        {
          "@type": "Country",
          "name": "Austria"
        },
        {
          "@type": "Place",
          "name": "Worldwide"
        }
      ],
      "category": "Web3 & Blockchain",
      "description": "ERC-4337 and account abstraction development. Smart accounts, paymasters, bundler integration, session keys, passkeys and social recovery, shipped to production.",
      "name": "Account Abstraction Development",
      "provider": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "serviceType": "Account Abstraction Development",
      "url": "https://wavect.io/services/account-abstraction-development/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/",
          "name": "Home",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/services/overview/",
          "name": "Services",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/services/blockchain/",
          "name": "Web3 & Blockchain",
          "position": 3
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/services/account-abstraction-development/",
          "name": "Account Abstraction",
          "position": 4
        }
      ]
    },
    {
      "@id": "https://wavect.io/services/account-abstraction-development/#webpage",
      "@type": "WebPage",
      "description": "ERC-4337 and account abstraction development. Smart accounts, paymasters, bundler integration, session keys, passkeys and social recovery, shipped to production.",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "mainEntity": {
        "@id": "https://wavect.io/services/account-abstraction-development/#service"
      },
      "name": "Account Abstraction Development",
      "url": "https://wavect.io/services/account-abstraction-development/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "End any week, with one message. No notice period, no exit interview, no fine print. We invoice weekly, so the most you're ever committed to is the current week."
      },
      "name": "How does the weekly cancellation actually work?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "It's in your contract: tell us, and we refund that week. No questions, no invoices to dispute, no calls to escalate. The only rule: refunds apply to the most recent week."
      },
      "name": "What if I'm not blown away by the work?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Because hours are the wrong metric. If we optimize for hours billed, we do not optimize for your outcome. The deal is simpler: every week has a defined result, and we earn the next week by delivering it. You pay for progress against that result, not for a timesheet."
      },
      "name": "Why don't you track hours?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "We work with operators, not lottery winners. If a request would require breaking physics, the law, or a third party's systems, we say so, and if we can't align, we walk. The guarantee is mutual: you can fire us any week; we can also fire ourselves."
      },
      "name": "What does 'expectations detached from reality' mean?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "A straightforward integration on an existing account implementation with a managed bundler and a simple sponsorship policy is typically four to eight weeks. A custom account with its own validation logic, a paymaster with real abuse controls, and a cross-platform wallet is more like three to six months. Production-grade account abstraction sits in the same band as our other infrastructure work, starting around €100k. The largest cost drivers are custom validation, sponsorship policy, recovery, and integration with an application that already has users."
      },
      "name": "How much does an ERC-4337 implementation cost?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Use the existing implementation unless you have a specific reason not to. They are audited, widely deployed, and someone else maintains them across EntryPoint upgrades. Custom becomes justified when your validation logic genuinely does not fit, for example unusual multi-party signing or compliance constraints. We will tell you which case you are in before you pay us to build anything."
      },
      "name": "Should we build a smart account or use Safe, Kernel or ZeroDev?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "You do, and nothing, unless the policy is designed for it. A paymaster is a funded account that strangers can spend. We scope sponsorship to specific contracts and function selectors, cap spend per user and per period, add rate limiting, and alert on burn rate. Treat the sponsorship budget as a line item with a monthly number, not as a technical detail."
      },
      "name": "Who pays the gas, and what stops people from draining the paymaster?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. That is exactly what the MetaMask Snap does: it brings Boba Network's account abstraction and Hybrid Compute smart wallets into the wallet users already have, built with Boba Network's team against MetaMask's Snap sandbox. Asking users to install a new wallet is a real conversion cost, and often an avoidable one."
      },
      "name": "Can you make this work inside MetaMask rather than a new wallet?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Whatever you designed for, which is why it has to be designed. Options are guardian-based social recovery, a passkey synced through the platform keychain, or a time-locked recovery key. Each trades security against support burden differently. Picking one late, after users hold real balances, is considerably more expensive than picking one early."
      },
      "name": "What happens when a user loses their device?"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
