Non-custodial Design
n0ir is fully non-custodial. Your wallet (EOA) always owns the funds, the agent only acts with limited, revocable permissions.
Control Model
SUDO Validator (User’s EOA)
Your wallet (MetaMask, Rainbow, etc.). Full control over the smart account.
Can withdraw, revoke, or execute any operation anytime.
REGULAR Validator (Agent)
Session key controlled by backend.
Limited to whitelisted vault, bridge, and withdrawal functions.
You can revoke the agent anytime or withdraw directly from your smart account.
Smart Account Structure (ZeroDev Kernel v3.2)
Each user deploys a smart account with two validators:
Smart Account (Kernel)
├─ 🔑 SUDO Validator → User EOA (root owner)
│ • Full control
│ • Can revoke agent
│ • Can withdraw anytime
└─ 🤖 REGULAR Validator → Agent session key
• Limited permissions
• 30-day expiry
• Whitelisted functions only⚙️ Agent Permissions
Allowed Operations
Vault Deposits / Withdrawals (ERC4626) → Only to 17 approved vaults.
USDC Approvals → For whitelisted vaults, CCTP, or Euler Vault Connector.
CCTP Bridge → USDC only, Base ↔ Arbitrum ↔ Sonic, to user’s smart account.
Euler Vault Ops → Through whitelisted EVC contracts.
USDC Transfers → Only to the user’s EOA (for withdrawals).
Forbidden Operations ❌ Withdraw to arbitrary addresses ❌ Approve or call non-whitelisted contracts ❌ Transfer NFTs or other tokens ❌ Modify ownership or validators
Security Model
Backend compromise = no fund loss. Even if the agent key leaks, it can:
Move funds only between whitelisted vaults
Bridge USDC only to the user’s smart account
Withdraw only to user’s EOA
🛠️ Recovery Scenarios
Agent malfunction
Use Emergency Withdraw → funds sent to EOA
Backend offline
Interact with vaults directly via your EOA
Frontend offline
Revoke session key on-chain or wait expiry
Everything offline
Use Etherscan/Web3 tools to redeem manually
Your EOA is always the root validator — full recovery guaranteed.
Technical Overview
ZeroDev Kernel v3.2 – modular ERC-4337 smart account
Permission Validator – whitelisted calls
Paymaster Support – gas-sponsored transactions
Multi-Chain Addressing – deterministic smart account across Base, Arbitrum, and Sonic
Data stored by backend:
{
"agentSessionPrivateKey": "...", // backend key
"sessionKeyApproval": "...", // permission proof
"smartAccountAddress": "..."
}No user private key or seed phrase is ever stored.
Summary
User EOA = Root Owner
Agent = Function-limited session key
Revocable anytime
Direct withdrawal possible
Backend compromise ≠ fund loss
n0ir combines automated yield optimization with true self-custody. Your keys, your crypto. Always.
Last updated