accounts.superposition.so

command module
v0.0.0-...-31f58b3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 11, 2026 License: MIT Imports: 23 Imported by: 0

README

Superposition Accounts

Superposition Accounts is a ed25519 smart account server that executes calldata on behalf of the submitter, with a list of goals, permit onramping arguments, and more. The factory looks up the address of the implementation before executing it. Proxies are configured using a metamorphic proxy pattern spun up using the storage slot.

During registration, a user calls the factory contract, which validates the signature and user data. The factory then uses create2 on the Ethereum address to call the migration method, which simply delegatecalls back to the factory.

It's possible to register contract "authorities" for accounts registered. These servers must support the function allowed(address)(bool). These authorities are consulted before executing a transaction to check if the hash of the contract they're calling is whitelisted.

Migrations are possible by the EOA owner of the contract.

Deployment layout

Factory -> Client [label="Looks up address"]
AccountServer -> Client [label="Executes the calldata with the goals on this server"]

Onramping (account creation) story

flowchart LR
    Factory
    -->|Invokes account create using create2 and the sender address| Child
    -->|Delegatecalls its deployer address for the creation| Factory

Dependencies

  1. (https://github.com/OffchainLabs/cargo-stylus)[cargo-stylus-sdk] -- Cargo Stylus binary for deployment.

  2. (https://github.com/iosiro/arbos-foundry)[arbos-foundry] -- Needed for testing.

  3. Rust with wasm32-unknown-unknown.

Deployments

0xb838e2C1C9e525dFE18D35cd906aEe141ce9CfC2 is the proxy of the accounts factory. 0x50b99543d3e30cb6bbf6666ac6f94f59240162af is the implementation.

0x4B4e7127A5Ae64D7c96997B2c23BdB09C4d47d3F is the implementation of the 9lives Authority address. 0x0e3CD9653D9d9610281551d8E3C98035215EA18e is the proxy.

Building

make

Testing

Make sure to pull all git submodules:

git submodule update --init --recursive

Then simply:

./tests.sh

Shoutouts

Special shoutout to arbos-foundry and Bernard Wagner for being proactive in resolving feedback with arbos-foundry.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
lib
db
tools
keccak256-hex command
leftpad-int command
make-permit command
sign-stdin command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL