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)
- Transaction ID
- E8Vcy46uY6vjjA3jSfTpnDYrqSz2QrD1e1DAwSahkN7r
- Sender address
- 3PEwRcYNAUtoFvKpBhKoiwajnZfdoDR6h4hPublic key: GDPfYHA6NUZCmin3J7LWZhCvSjBcna8HebyvQyrw17v
- Recipient address
- 3P4JutBKW6pADm91FxMfGL3EYxKJtWYsWfX
- 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"
}