mimor
the autonomous business agent with a wallet, a card, and a constitution.
Robinhood Chain ERC-4337 MCP TypeScript Solidity
Give an agent a goal. Give it money. Keep the rules outside its head.
mimor is an open protocol for creating bounded economic agents. It compiles a human mandate into a typed policy, attacks that policy for loopholes, deploys an ERC-4337 account on Robinhood Chain, and maps the same limits to a dedicated agentic virtual card.
the idea
Today's agents are given prompts and credentials. Prompts are soft; credentials are absolute. A model can misunderstand a sentence, split one forbidden payment into five permitted payments, or decide that breaking a rule is useful to the larger goal.
mimor separates reasoning from authority. A model may propose any action. Only the policy account can authorize it.
run my site for $500/month. no annual plans. never advertise. ask before any payment over $50.how it works
human mandate
│
▼
intent compiler ──► typed policy ──► breaker agent
│
counterexample search
│
▼
user signs policy root ──► ERC-4337 policy account
│ │
▼ ▼
Robinhood Chain banking adapter
USDG / contracts virtual card / MCP
architecture
| Package | Responsibility | Trust |
|---|---|---|
@mimor/compiler | Natural language → canonical policy DSL | Untrusted proposal |
@mimor/breaker | Conflict detection and multi-step bypass search | Adversarial |
@mimor/account | ERC-4337 validation and execution limits | Onchain enforcement |
@mimor/banking | Virtual-card policies, approval flow and reconciliation | Provider boundary |
@mimor/ledger | Cross-rail double-entry ledger and Merkle commitments | Auditable |
@mimor/runtime | Planning, simulation, execution and compensation | Replaceable |
repository
mimor/
├── apps/
│ ├── web/ policy builder + activity ledger
│ └── agent/ planner and MCP runtime
├── contracts/
│ ├── MimorAccount.sol ERC-4337 smart account
│ ├── MimorPolicy.sol deterministic authorization
│ └── PolicyRegistry.sol versioned policy roots
├── src/
│ ├── compiler/ mandate parser + canonicalizer
│ ├── breaker/ counterexample search
│ ├── runtime/ plan / simulate / execute / compensate
│ ├── banking/ Robinhood Banking MCP adapter
│ └── ledger/ card + chain reconciliation
├── examples/mandate.yaml
└── test/invariants/ Foundry invariant tests
policy lifecycle
- Draft. The compiler produces a typed policy and explains every inferred value.
- Attack. The breaker searches for split-spend, asset-hop, stale-price and approval bypasses.
- Confirm. The user reviews the canonical policy—not the original prompt—and signs its hash.
- Deploy. A policy account and bounded session key are created on Robinhood Chain.
- Execute. Every action is simulated and checked against pre-state and expected post-state.
- Reconcile. Card and chain entries settle into one ledger; private records remain offchain while their Merkle root is committed onchain.
quick start
git clone https://github.com/TBA/mimor
cd mimor
pnpm install
cp .env.example .env
# compile and attack an example mandate
pnpm mimor compile examples/mandate.yaml
# run contracts against Robinhood Chain testnet
pnpm contracts:test
pnpm contracts:deploy:testnet
# start the local agent and policy console
pnpm dev
execution guarantees
- The language model never owns the account or master key.
- Session keys expire and are scoped by target, asset, value and time.
- Limits apply to aggregate spend, preventing transaction splitting.
- Unknown contracts and assets fail closed.
- High-risk operations require an owner signature.
- Card details are requested only at checkout and are never written to the public ledger.
- Cross-rail operations use a Saga state machine because card payments and chain transactions cannot be atomic.
status
| Mandate DSL | prototype |
| Breaker agent | prototype |
| Policy account | testnet |
| Banking MCP adapter | integration |
| Security audit | not started |
disclaimer
Experimental software. Not audited. Do not use with funds you cannot afford to lose. Robinhood Chain and Robinhood Banking are separate execution environments; mimor does not claim that card transactions settle onchain.
rule zero
The model never gets the master key.


















