Architecture
Explore the factory, beacon, per-wallet vaults, key storage, authenticators and signing engine in an interactive contract atlas.
How Monstera fits together.
Start with the three layers below. Select any component for its role, SDK interface and exact connections.
Application layer
Your app collects intent. The SDK carries requests; a submitter can pay for state-changing calls.
Shared infrastructure
The factory creates wallets. Its beacon selects WalletLogic for every default wallet proxy.
A wallet’s contracts & authentication
The vault verifies protected actions, then uses its paired storage and signing engine. Authenticators can be shared, with configuration per vault.
Supporting contracts & extensions 5 components
Creation libraries, clone template, registry references and optional product hooks.
Maps the inspected local contracts. Live demo reads use SDK deployment presets; address reads do not attest deployed bytecode versions. Core wallets and custom-logic clones are alternatives to the default beacon path.
Request flow
Application → SDK facade → KeyVaultV3
├─ IAuthenticator.verify(vault, context, proof)
├─ WalletStorageV2.getBaseKeys(accessToken)
└─ implementation.staticcall(signing operation)
Optional logic client:
Application → BeaconProxy → WalletLogic → KeyVaultV3Responsibilities
- WalletFactory deploys the per-user stack and maintains global policy.
- WalletLogic exposes normal wallet features but does not authenticate.
- KeyVaultV3 is the security gateway and owns the hidden storage access token.
- WalletStorageV2 permits only its paired vault with the correct token.
- KeyVaultImplementationV2 is stateless and receives key material only inside Sapphire execution.
- SecretVault protects application secrets using the vault's current authenticator.
- Applications and relayers submit requests but do not gain access to wallet key material.
