← Back to DAO
WAVES DAO
Voting

Dapp Abstraction on Waves

Summary

Hi everyone,

I’ve been working on a concept called Waves DA (dApp Abstraction), a pragmatic, Waves-native pattern that enables an “Account Abstraction-like” UX (fewer user signatures, sponsored execution) on the Waves Protocol.

The goal is simple:

  • users stay in control (EOA remains the authority)
  • apps can feel “real-time” (relayers execute actions on behalf of user)
  • target dApps see the user DA wallet as the on-chain caller (not the backend / relayer)

What it is (short version) Each user creates a DA Wallet (a dApp acting as a proxy). The DA wallet is owned by the user (EOA). The user can authorize one or more relayers to call only specific dApps and methods via the DA proxy (scoped permissions, optional expiry and spending limits).

A global registry maps EOA → DA so relayers never trust frontend-provided addresses. DA setup is protected against init frontrun using a pendingOwner lock written before setScript. After setup, relayers can execute actions via proxy() so users don’t need to sign every interaction.

Demo + article

Video demo: https://www.youtube.com/watch?v=UDDI-KyvEcQ

Medium article: https://medium.com/@crashartifacts/waves-da-dapp-abstraction-account-a-pragmatic-account-abstraction-like-ux-on-waves-8ce89142f925

Current status (PoC) The PoC is end-to-end functional:

  • DA wallet creation + script deployment
  • secure init + registry registration
  • permission management
  • proxy calls to target dApps
  • relayer backend flow
  • refund validation guard (optional fee sponsorship)

Roadmap to production (target: early Q2 2026) / Planned deliverables:

Core deliverables

  • Landing page: create & manage your DA wallet (clean UX for users)
  • JS library: easy integration for 3rd party projects
  • Production NodeJS relayer: proper backend script/service to run as a relayer
  • GitBook documentation: concepts + integration guides + examples
  • Hosting + domain
  • Maintenance & updates for 1 year

Improvements beyond the PoC:

  • Full support for missing callable arg types in proxy: -- binary (ByteVector) support -- List support

-Frontend completeness: -- UI/UX Improvements -- expose all missing methods (pause/unpause, etc.)

  • better Params management: -- dropdowns for authorized relayers / dApps / methods -- human-friendly expire presets (1h / 1d / 1w / 1m + custom) -- limit spending/allowances more ergonomically

  • Richer wallet management: -- list WAVES & assets balances -- improved withdraw/transfer UI

  • More signer options / login options

Funding request: I request a funding of 20 000 WAVES, covering the work above and 1 year of maintenance.

Why this matters for Waves

  • Helps games/social apps reduce signature fatigue, sign once only for the whole session.
  • Enables “sponsored execution” patterns safely, relayer/ project can cover tx fee or get refunded
  • Keeps users in control (relayers never become owners)
Transfer transaction preview
Transaction ID
E8Vcy46uY6vjjA3jSfTpnDYrqSz2QrD1e1DAwSahkN7r
Sender address
3PEwRcYNAUtoFvKpBhKoiwajnZfdoDR6h4hPublic key: GDPfYHA6NUZCmin3J7LWZhCvSjBcna8HebyvQyrw17v
Amount
20 000 WAVES
Blockchain fee
0.009 WAVES
Execution time
7 Feb 2026 03:00Broadcast 02:00 - 04:00

Important Notice

When voting, you are approving the transaction below to be broadcast on-chain. Please verify that the transaction payload matches the proposal description. It is not possible to automatically validate the relationship between the proposal text and the transaction data. Always do your own research (DYOR) before voting.

Raw transaction data

{
  "type": 4,
  "version": 2,
  "senderPublicKey": "GDPfYHA6NUZCmin3J7LWZhCvSjBcna8HebyvQyrw17v",
  "assetId": null,
  "recipient": "3P4JutBKW6pADm91FxMfGL3EYxKJtWYsWfX",
  "amount": 2000000000000,
  "attachment": "",
  "fee": 900000,
  "feeAssetId": null,
  "timestamp": 1770433200000,
  "proofs": [],
  "chainId": 87,
  "id": "E8Vcy46uY6vjjA3jSfTpnDYrqSz2QrD1e1DAwSahkN7r"
}