A minimal on-chain vault with role separation and two-tier whitelist control. Modular plugin system, integration and launch in minutes — for AI agents, DAOs, crowdfunding, and any scenario.
Status: Testnet (Base Sepolia) · Open source · BUSL-1.1 · Twitter
A universal solution that lets you set up secure, free, and simple fund management for AI agents, DAOs, crowdfunding, and whatever else you need.
The core separates who owns the funds, who can spend them, and where they can be spent — three independent parameters configurable for any use case.
The owner retains full control and can revoke access at any time. The operator (AI agent, grant recipient, campaign creator) can spend — but only to whitelisted addresses. The whitelist is two-tiered: a global registry of verified vendors and a local per-vault list configured by the owner.
All business logic — budgets, deadlines, refunds, conditions — lives in plugins. The core enforces the boundary. A new use case only requires a new plugin.
AIBudgetPlugin — A recurring spend limit for the operator. The amount, period, and vendor list are set by the owner. Exceeding the limit is blocked by the contract.
CrowdfundPlugin — Fund collection with a goal and a deadline. The creator can only spend to approved addresses. If the goal is not met, each participant claims a refund directly from the contract.
DAO grant management and milestone-based fund release plugins are currently in development.
Each plugin is a standalone contract that connects to a vault and defines spending rules. The core does not change. The plugin defines the logic — the core enforces execution.
Official plugins are maintained by the project. Any developer (or AI agent) can quickly and easily build a custom plugin for their specific use case by implementing the IPlugin interface.
Deposit ──► ┌────────────────────────┐
│ VaultPort │
│ (core, ~200 LOC) │
│ │
│ • ERC-20 balance │
│ • Whitelist gate │ ──► Approved Vendor
│ • Owner / Controller │
└──────────┬─────────────┘
│
┌──────────┴─────────────┐
│ Plugin Layer │
│ │
│ AIBudgetPlugin │
│ CrowdfundPlugin │
│ ...your plugin │
└────────────────────────┘
Core does three things:
- Holds tokens — anyone can deposit
- Enforces whitelist — spending only to approved vendors (global registry or per-vault list)
- Separates roles — Owner (full control) vs Controller (spend-only)
Plugins handle everything else. They attach to the vault as Owner or Controller and define the rules. The vault does not know or care what the plugin does — it simply enforces the spending boundary.
| Contract | Description |
|---|---|
VaultPort.sol |
Core vault — deposit, spend, withdraw, whitelist, rescue |
VaultFactory.sol |
Clone factory (EIP-1167) with CREATE2 support |
CategoryRegistry.sol |
Global vendor whitelist by category |
PluginRegistry.sol |
Plugin index for frontends and subgraph |
AIBudgetPlugin.sol |
Recurring spend budgets with epoch limits |
CrowdfundPlugin.sol |
Goal-based crowdfunding with deadline and refunds |
IPlugin.sol |
Plugin interface |
| Contract | Address |
|---|---|
| VaultFactory | 0xBA6540D0922788E4b6338203c5edCd1C8A55cdD4 |
| VaultPort (impl) | 0x4D420C4e8411e85738Fa735DE1BE05c23B5aa75c |
| CategoryRegistry | 0xA8E41bB18da884A8c55B929443a6017d0D37D66a |
| PluginRegistry | 0xE9fd54E2ca15B097fc5b3eeb7EC530009ceA9e5B |
| CrowdfundPlugin | 0x24e608C4b697Bbb1CAf6785957F4dB5EB39cB526 |
| AIBudgetPlugin | 0x2688eE3541D3b7922C24589369349b59cc0FAaD0 |
All contracts are verified — source code is readable on BaseScan. See Testnet Guide for testing instructions.
- Minimal core with no upgradeability, no pause, no admin functions
ReentrancyGuard+SafeERC20on all state-changing functions- No oracles, no external price dependencies
- No calldata forwarding in
spend()— tokens go directly to the vendor - Each vault is an independent EIP-1167 clone — isolated by design
rescueERC20()/rescueETH()for accidentally sent assets
npm ci
npm run preflight # typecheck + tests (87 passing)cd subgraph && npm ci
npm run codegen && npm run buildSolidity ^0.8.20 · OpenZeppelin v5 · Hardhat · TypeScript · The Graph · ERC-4337 (account abstraction, session keys) · Base Sepolia
- Testnet on BaseScan — VaultFactory (main entry point)
- Testnet Guide
- Security Policy
- Contributing
- Contact: vaultport@proton.me
Business Source License 1.1 — converts to AGPL-3.0 on April 8, 2030.