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.
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.
# Get full account configuration
qorechaind query abstractaccount account <address>
# List all abstract accounts (paginated)
qorechaind query abstractaccount list --limit 10