hackquest logo

AgaPay

Agapay (from Filipino agapay, "to walk alongside") is a non-custodial, on-chain savings and smart spending vault protocol built on Arbitrum. It lets individuals and groups lock funds into a smart contract with a beneficiary list, a due date, and optional drip-release scheduling — no bank, no counterparty, no trust required. The contract enforces the terms. A keeper triggers release; fees are transparent and configurable at deploy time. The frontend connects via RainbowKit + wagmi — users bring their own wallet.

Công nghệ sử dụng

Solidity
Node
Next

Sự miêu tả

**Problem:** In many communities, savings are informal, trust-based arrangements that break down when members default, disappear, or dispute amounts. There is no self-enforcing primitive for group savings on-chain.

**Solution:** Agapay vaults are immutable savings agreements on Arbitrum:

- **Standard vault** — funds locked until a due date; released in one shot to one or more beneficiaries by a keeper.
- **Drip vault** — funds released in fixed installments at a configurable interval (daily, weekly, monthly). Each installment is capped at the vault's current balance.
- **Target gating** — vaults can require a funding target to be met before release is allowed.
- **Fee model** — a platform fee (bps) and an optional keeper tip (bps) are deducted from each release, remainder goes to beneficiaries according to their share split.

The contract is **UUPS-upgradeable** (OpenZeppelin), deployed behind a proxy so the implementation can be patched without migrating vault state.


| Layer | Choice |
|---|---|
| Smart contract | Solidity 0.8.27, Foundry, OpenZeppelin UUPS |
| Frontend | React 18, Vite, TypeScript |
| Wallet | RainbowKit + wagmi + viem |
| Chains | Arbitrum Sepolia (testnet), Robinhood Testnet (chain 46630) |
| Token | MockUSDC (6 decimals, mintable) |

Tiến độ hackathon

Smart Contract) - `AgapayVaults.sol` — UUPS upgradeable vault factory - `createVault(name, token, target, dueDate, requireTarget, beneficiaries[], shareBps[])` — standard vault - `createDripVault(name, token, target, dueDate, intervalSeconds, dripAmount, requireTarget, beneficiaries[], shareBps[])` — drip vault - `fund(id, amount)` — ERC-20 deposit - `release(id)` — one-shot release with fee deduction - `releaseDrip(id)` — interval-based partial release - `refund(id)` — returns balance to funder when conditions aren't met - `MockUSDC.sol` — ERC-20 test token with public `mint()` - **Test coverage: 23/23 tests passing, 95.58% line coverage** (Foundry) - `via_ir = true` enabled to resolve stack-too-deep on `releaseDrip` Frontend - RainbowKit `` — MetaMask / injected wallet connect - Chain switcher — Arbitrum Sepolia and Robinhood Testnet both configured - Auto-mint on wallet connect (Anvil local only) - Vault wizard — create standard or drip vault with beneficiary split UI - Vault list — filtered by owner/beneficiary, live from chain via `nextVaultId` + batched `getVault` calls - Fund modal — approve + fund in one UX flow - Vault detail — release, refund, drip status, timeline - Landing page — conversion-focused, single CTA - Mercury design system — black background, `#8B9CEC` accent, Inter font Deployments Arbitrum Sepolia (chain 421614) | Contract | Address | | MockUSDC | `0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d` | | AgapayVaults proxy | `0x95b2b6e2fb1256d77c5cfb240314b47be7c303f3` | | Deploy block | 315,165,341 | Robinhood Testnet (chain 46630) | Contract | Address | | MockUSDC | `0x1fa1be7637b769ddde5037d175b4895189226e80` | | AgapayVaults proxy | `0x262a2c969cf93c8547c1b5caa94e2baedeefa279` | | Deploy block | 127,982,156 | Smoke Test — Robinhood Testnet | Step | Tx Hash | | Create vault | `0x23dd3...` | | Approve USDC | `0x76d3a...` | | Fund vault (2 USDC) | `0x8eae7...` | | Release | `0x9b4f1...` | Demo Vaults — Arbitrum Sepolia | Vault | ID | Description | Status | | School Fees | 6 | 70/30 split, 8/20 USDC funded | Active | | Rent Reserve | 7 | Keeper-released after creation | Released | | Emergency Fund | 8 | Target-gated, 3/8 USDC (shortfall demo) | Active |

Trạng thái huy động vốn

Agapay is currently pre-revenue and not seeking external funding at this stage. The project was built as a public-good savings primitive. Potential monetisation paths, if the protocol gains adoption: - Protocol fee: 0.5% on release (already implemented, configurable at deploy) - Keeper tip: 0.1% on release (goes to the address that triggers `release()`) - Managed vaults: a hosted keeper service that auto-releases on schedule for users who don't want to self-keep No tokens, no DAO, no roadmap promises. The contract is deployed and functional on two Arbitrum chains. This submission is the working product.
Trưởng nhóm
OOjo Emmanuel Oluwafemi
Liên kết dự án
Ngành
DeFiRWAInfra