account abstraction

QoreChain provides protocol-level account abstraction through the x/abstractaccount module. This enables programmable accounts with flexible authentication rules, session keys, spending limits, and social recovery -- all without requiring external smart contract infrastructure.

Overview

Traditional blockchain accounts are controlled by a single private key. Account abstraction decouples the concept of "who can authorize a transaction" from a single cryptographic key, enabling:

  • Multisig accounts with configurable threshold signing

  • Social recovery accounts with guardian-based key recovery

  • Session-based accounts with granular, time-limited permissions for dApps

The x/abstractaccount module implements these capabilities at the protocol layer, meaning they work across all three VMs (EVM, CosmWasm, SVM) and benefit from native gas efficiency.

Account Types

Type
Description
Use Case

multisig

M-of-N threshold signing

DAO treasuries, shared wallets

social_recovery

Guardian-assisted key recovery

Consumer wallets, onboarding

session_based

Delegated session keys with constraints

dApp sessions, mobile wallets

Creating an Abstract Account

Session-Based Account

qorechaind tx abstractaccount create \
  --account-type session_based \
  --from mykey \
  --gas auto \
  -y

Multisig Account

Social Recovery Account

Session Keys

Session keys are the cornerstone of the session_based account type. They allow you to grant temporary, scoped permissions to a secondary key -- perfect for dApp interactions where you do not want to expose your primary key.

Key Properties

Property
Description

Permissions

Which message types the session key can sign

Expiry

Automatic expiration after a configurable duration

Spending limits

Maximum amounts the session key can spend

Allowed contracts

Restrict interactions to specific contract addresses

Grant a Session Key

Revoke a Session Key

List Active Sessions

Spending Rules

Spending rules add financial guardrails to abstract accounts, regardless of account type:

Rule
Description

daily_limit

Maximum total spend per 24-hour rolling window

per_tx_limit

Maximum spend per individual transaction

allowed_denoms

Restrict which token denominations can be spent

Set Spending Rules

Query Current Rules

Example Response

Querying Abstract Accounts

CLI

JSON-RPC

Example Account Response

Social Recovery Flow

If the account owner loses access to their primary key, guardians can authorize a key rotation.

1

Owner reports lost key (or a guardian initiates)

2

Additional guardians approve (must meet recovery_threshold)

3

Recovery executes automatically once the threshold is met

A time-lock period (default: 48 hours) gives the original owner a chance to cancel a fraudulent recovery attempt.

Integration with dApps

Session keys enable seamless dApp experiences:

  1. User connects wallet and creates a session key scoped to the dApp's contract

  2. dApp uses session key to submit transactions on behalf of the user

  3. No repeated signing -- the session key handles authorization within its permissions

  4. Session expires automatically, or the user revokes it at any time

This pattern is especially useful for:

  • Mobile wallets where repeated biometric prompts are disruptive

  • Gaming dApps that need rapid transaction signing

  • DeFi protocols that execute multiple sequential operations

Next Steps

  • Running a Validator -- Set up and operate a validator node

  • EVM Development -- Integrate abstract accounts with Solidity dApps

  • Cross-VM Interoperability -- Cross-VM messaging with abstract accounts