Skip to main content

Blockchain & Web3 · MESH

Web3 dApps.

Wallet-first dApp experiences with the engineering rigor a consumer product deserves: account abstraction, gasless flows where the workload supports it, off-chain indexing, and onboarding that doesn’t require a 12-step crypto tutorial.

Practice
Blockchain & Web3
Department
MESH

The problem

Most dApps have a 90% drop-off rate at wallet connect and don’t investigate why.

The pattern: a beautiful Figma, a working contract, a wallet-connect modal that confuses every non-crypto-native user, error messages that are EVM revert reasons, transaction status that's a permanent 'pending', and a state model that diverges from chain reality every time the RPC endpoint hiccups. dApp UX failure isn't a design problem. It's an engineering problem dressed up as a design problem.

We engineer dApps with the discipline a consumer product deserves: account abstraction (ERC-4337) for flows where it earns its complexity, gasless transactions where the workload supports it, off-chain indexers that make the chain queryable in real human latency, optimistic UI with reconciliation, and onboarding that meets users where they are. The dApp that ships is the dApp users finish onboarding into.

Where it ships

5 use cases, in production.

Specific applications we’ve built and operated. Not speculative: every example below is grounded in a real shipped engagement.

  • 01

    94%

    first-time-success transaction rate

    Consumer dApps

    Wallet-first consumer experiences with account abstraction, social recovery, gasless transactions where the protocol supports it, and onboarding that works for users who don't know what an EVM is.

  • 02

    Pro / power-user dApps

    Trading interfaces, vault management UIs, governance dashboards, and analytics for power users. Real-time chain state, optimistic UI, and the precision pro users expect.

  • 03

    Wallet integration and connection

    Multi-wallet support (RainbowKit, ConnectKit, Web3Modal), WalletConnect v2, and the connection-state machine that survives network switches, account changes, and RPC failures.

  • 04

    Off-chain indexing and APIs

    The Graph, Goldsky, Subsquid, or custom indexers. GraphQL / REST APIs that surface chain state at human latency. Cache invalidation that survives reorgs.

  • 05

    Notifications and chain events

    Webhook delivery on chain events, in-app notifications, email / push alerts, and the relayer infrastructure that makes them reliable across reorgs.

How we engage

4 phases, named in the SOW.

Each phase has a deliverable, an owner, and an acceptance criterion. Not slogans, operating rules.

  1. 01

    User research before wallet flow

    Discovery with the actual user cohort: crypto-native, mainstream, or institutional. Wallet-flow design and onboarding tested against the cohort, not against the engineering team's intuition.

  2. 02

    Engineering for chain reality

    State management that handles eventual consistency, optimistic UI with reconciliation, error messages translated from EVM revert reasons to human language, and transaction-status tracking that survives RPC outages.

  3. 03

    Off-chain indexing for performance

    Chain reads through indexed sources (The Graph, custom indexers) at human latency, not RPC at every render. Cache architecture survives reorgs; subscriptions push updates without polling.

  4. 04

    Production discipline

    Monitoring on RPC health, transaction success rates, and reorg frequency. Runbooks for chain-state-divergence incidents. Hand-off to your engineering team or continued operation under Managed Services.

Capabilities

What’s in scope.

  • Account abstraction (ERC-4337): smart accounts, session keys, sponsored gas
  • Wallet integration: RainbowKit, ConnectKit, Web3Modal, WalletConnect v2
  • Off-chain indexing: The Graph, Goldsky, Subsquid, custom indexers
  • State management for chain reality: optimistic UI, reorg-aware caches
  • Transaction UX: status tracking, retry, replacement-by-fee, gas optimization
  • Notification infrastructure: webhooks, push, email, in-app alerts
  • Frontend engineering: React, Next.js, wagmi, viem, ethers.js

Stack

Tools we use in production.

Frontend
Next.jsReactTailwindshadcn/uiwagmiviem
Wallet
RainbowKitConnectKitWeb3ModalWalletConnectPrivy
Account abstraction
ERC-4337PimlicoStackupBiconomySafe
Indexing
The GraphGoldskySubsquidCustom Postgres
Backend
Node.jsGraphQLPostgresRedisBull / BullMQ

Common questions

Asked before the first call.

  1. 01

    Account abstraction or EOA wallets?

    Account abstraction (ERC-4337) for consumer dApps where smart-account UX (social recovery, sponsored gas, session keys, batched transactions) earns its complexity. EOA for pro / power-user dApps where users already have a wallet and want direct control. We design for the user cohort, not the technology choice, and we tell you when AA is hype-driven for your use case.

  2. 02

    Can you integrate with our existing Web2 product?

    Yes: most of our dApp work blends Web2 and Web3. Identity often stays in Web2 (Auth0, Cognito, Entra), with on-chain identity layered on. Notifications, support tooling, customer-service integrations live in Web2. The line between Web2 and Web3 is an architectural decision, not an ideological one.

  3. 03

    How do you handle gas fees in UX?

    Three patterns. (1) Sponsored gas (paymaster) where the protocol benefits from absorbing fees. (2) Estimated gas shown clearly ahead of confirmation, in fiat where helpful. (3) Replacement-by-fee tooling for stuck transactions. We design the gas UX explicitly per protocol, not as an afterthought.

  4. 04

    Do you support multi-chain in one dApp?

    Yes. Multi-chain dApps come with engineering complexity: RPC health per chain, gas-token differences, chain-switching UX, indexer fan-out. We design the architecture to scale to multiple chains from day one when the product roadmap calls for it, and we tell you when single-chain is the right choice.

  5. 05

    What about RPC reliability?

    Always assume RPC fails. Multiple RPC providers in fallback (Alchemy, Infura, QuickNode, Ankr, Tenderly), client-side retry with exponential backoff, and clear UI states for 'we cannot reach the chain'. We treat RPC the way we treat any external dependency, designed to degrade gracefully.

  6. 06

    What does a dApp engagement cost?

    MVP dApp: 3–5 months, $200K–$600K. Production-grade dApp with off-chain indexing and full wallet UX: 5–9 months, $500K–$1.5M. Consumer dApps with AA infrastructure and 100K+ user scale: $1M–$3M. Managed Services: $25K–$100K monthly retainer. Brackets published honestly so visitors self-qualify before the first call.

Talk to us

Bring a Web3 dApps problem. We’ll bring a senior engineer.

A senior engineer plus the MESH department lead joins the first call. No discovery gauntlet, no junior reps.