Cover photo

Narrative Abstraction: Towards a Universal Account Manager

Account Abstraction Was Never Enough

  1. product definition

  2. user

  3. goals

  4. how user experience today

  5. bad outcomes

  6. problems

  7. causes

  8. product solutions

  9. object model

  10. non-requirements

  11. scope

  12. prototype


1. product definition

account abstraction (aa) is a meaningful step forward for onchain users — but the more accounts a user accumulates, the harder their onchain existence becomes — and the irony is they need offchain accounts to access most of their onchain ones. a universal account manager starts where aa leaves off — not at the account level, but at the graph level: the complete surface of who you are online, onchain and off.

this document defines requirements for a standalone tool that serves as the single place a user manages any set of accounts, and any type of accounts they control — onchain and off. it captures new accounts as they're created, maps the credentials that protect them, monitors their security over time, propagates changes across chains and services, and models what breaks if something goes wrong.

not a wallet. not a dapp browser. not a password manager replacement (though it layers on top of one). a new category: the account graph. the prototype is a desktop extension.

key features

post image

try the prototype


2. user

power user who manages multiple online identities, credentials, and accounts across web2 (offchain) and web3 (onchain). maintains eoas, smart contract wallets, passkeys, hardware keys, session keys, multisig configs, and traditional web2 logins. operates across multiple chains and services.


3. goals

users managing online and onchain accounts share five goals — whether they hold two accounts or two hundred, and on one chain or many.

post image

4. how user experience is today

web2 credentials live in a password manager. web3 keys live in wallet apps, sometimes backed up as seed phrases. smart wallet signer configs live onchain per deployment per chain. session keys are granted per dapp and tracked nowhere. recovery setups are configured per wallet per chain with no unified view.

when the user creates a new web2 account, the password manager catches it. when the user creates a new web3 account onchain, nothing catches it.


5. bad outcomes

today, users navigating web2 and web3 accounts face a set of failures that no single wallet or password manager or aa infrastructure prevents.

post image

6. problems

these problems aren't just security risks — they're productivity losses. without situational awareness across accounts and credentials, users spend time on manual tracking, miss exposures, and can't act on changes efficiently.

post image

7. causes

each problem traces to a root cause — tools that were built for one side of the user's identity and never designed to see the other.

post image

8. solutions

a universal account manager addresses each cause with a corresponding solution — bridging the gap between web2 and web3 tooling into one surface.

post image

9. object model

the core object is an account — a relationship between the user and a service, chain, or protocol.

post image
post image

10. non-requirements

post image

11. scope

the prototype was built iteratively across four versions.

  • v1 established the core data model and browsing.

  • v2 added security awareness.

  • v3 introduced write operations

  • v4 extended the model toward identity interoperability — verified credentials with w3c vc fields, correlation tracking across shared credentials, profile creation, and import/export using the w3c universal wallet 2020 spec.

    each version built on the last without replacing it.

post image

12. prototype

the prototype simulates a chrome extension side panel running alongside a web page. the demo loads a simulated metamask portfolio page — token balances, tabs, a connected address — to show how the extension detects the current site and offers to capture or update account data in context.

clicking the extension icon in the toolbar opens the side panel directly. the prototype is a single HTML file built with react and typescript, deployed to github pages.

all data is local and simulated — no backend, no chain calls, no real credentials. write operations like rotate and revoke simulate the walletconnect signing flow with progress animations.

the prototype is meant to demonstrate the interaction model, not the infrastructure.

try the prototype