Under Construction This DApp is in development

Identity Subsystem

The OmniSocial identity subsystem is built around smart contract wallets using account abstraction principles to deliver secure, extensible identity and signature management for every user.

This system enables seamless persona switching, multi-device authentication, and integration of zero-knowledge proofs or guardians for recovery and 2FA—all without requiring multiple wallet addresses.

Components

🧱 OmniWalletFactory.sol

  • Role: Deterministically deploys OmniWallets for each user via CREATE2.

  • Functions:

    • createWallet(address owner, bytes32 salt): Deploys a new wallet if one does not exist.

    • getWalletAddress(address owner, bytes32 salt): Computes the expected address.

  • Events:

    • WalletCreated(address indexed owner, address wallet)

🔐 OmniWallet.sol

  • Role: User-owned smart contract wallet with account abstraction and built-in recovery & 2FA support.

  • Key Features:

    • Meta-transaction execution

    • Optional WebAuthn 2FA

    • Guardian approval and recovery

    • Persona switching and identity anchoring

  • Core Functions:

    • execute(address to, uint256 value, bytes calldata data): Executes a call on behalf of the user.

    • setGuardians(address[] calldata guardians): Sets guardian accounts for recovery.

    • triggerRecovery(address newOwner): Initiates account recovery flow.

    • set2FA(bytes publicKey): Enables or updates WebAuthn-based 2FA.

    • verify2FA(bytes challenge, bytes signature): Verifies second-factor authentication.

    • switchPersona(uint256 personaId): Updates the active persona linked to this wallet.

  • Events:

    • Execution(address indexed target, uint256 value, bytes data)

    • PersonaSwitched(uint256 indexed personaId)

    • 2FASet(address indexed owner)

    • RecoveryInitiated(address indexed newOwner)

    • GuardiansUpdated(address[] guardians)

Account Abstraction Benefits

  • Meta-Transactions: Users can authorize actions without holding MATIC. Relayers submit transactions and optionally receive a fee (gasless UX).

  • Social Login Ready: Can support magic links, QR pairing, and biometrics via compatible frontends.

  • One Wallet, Many Personas: Personas are minted as NFTs and linked to a single wallet. Users can switch personas without address changes.

  • Built-in Security: With 2FA and guardian-based recovery at the wallet layer, the OmniWallet ensures both usability and resilience.

Flow Example: Wallet Creation

  1. User signs up via the OmniSocial dApp.

  2. OmniWalletFactory is called with their address and salt.

  3. OmniWallet is deployed deterministically.

  4. User’s first persona is minted and linked.

  5. Wallet is ready to sign content, join DAOs, or receive tips.

Last updated

Was this helpful?