Appearance
API Reference
All backend API endpoints grouped by domain. 65 Lambda handlers serving 81+ endpoints + 2 schedulers + 1 worker.
Auth (3)
| Method | Endpoint | Description |
|---|---|---|
POST | /auth/nonce | Request a random nonce for SIWE message signing |
POST | /auth/verify | Verify signed SIWE message, return JWT (access + refresh tokens) |
POST | /auth/admin-login | Admin login with credentials |
Users (2)
| Method | Endpoint | Description |
|---|---|---|
GET | /users | List users (with filters) |
GET | /users/{id} | Get user details by ID |
Wallets (2)
| Method | Endpoint | Description |
|---|---|---|
GET | /wallets | List wallets (with filters) |
GET | /wallets/{address} | Get wallet details by address |
KYC Logs (2)
| Method | Endpoint | Description |
|---|---|---|
GET | /kyc-logs | List KYC verification logs |
GET | /kyc-logs/{id} | Get KYC log details by ID |
KYC / SumSub (4)
| Method | Endpoint | Description |
|---|---|---|
POST | /kyc/access-token | Generate SumSub SDK access token for KYC/KYB flow |
GET | /users/me/kyc-status | Check KYC status for current authenticated user |
POST | /kyc/mint-sbt | Mint Soulbound Token after KYC approval |
POST | /kyc/webhook | SumSub webhook — updates kyc_status on verification result |
Pools (7)
| Method | Endpoint | Description |
|---|---|---|
GET | /pools | List all pools (with status, NAV, APY, capacity) |
GET | /pools/{id} | Get pool details by ID |
POST | /pools | Create new pool with config (APY, lock-up, reserve %, etc.) — triggers deploy worker |
PATCH | /pools/{id} | Update pool details |
DELETE | /pools/{id} | Delete pool (draft/archived only) |
POST | /pools/{id}/lp-transfer | Transfer LP tokens to investor after deposit match |
POST | /pools/{id}/receipt-burn | Burn receipt token after LP issuance |
Pool Categories (2)
| Method | Endpoint | Description |
|---|---|---|
GET | /pool-categories | List pool categories |
POST | /pool-categories | Create pool category |
Pool Data (7)
| Method | Endpoint | Description |
|---|---|---|
GET | /underlying-assets | List underlying assets |
GET | /underlying-assets/{id} | Get underlying asset details by ID |
GET | /pools/{poolId}/tvl-history | Get TVL history for a pool |
GET | /pool-documents | List pool documents |
GET | /pool-documents/{id} | Get pool document by ID |
GET | /pool-compositions | List pool compositions |
GET | /pool-compositions/{id} | Get pool composition by ID |
Deposits (5 + scheduler)
| Method | Endpoint | Description |
|---|---|---|
GET | /deposits | List deposits (with filters) |
GET | /deposits/{id} | Get deposit details by ID |
POST | /deposits | Create new deposit (lock USDC in escrow, mint receipt token) |
POST | /deposits/{id}/match | Match deposit with LP token issuance |
POST | /deposits/{id}/refund | Refund deposit (return USDC to investor) |
Redemption Requests (7 + 3 multi-sig)
| Method | Endpoint | Description |
|---|---|---|
GET | /redemption-requests | List redemption requests (with filters) |
GET | /redemption-requests/{id} | Get redemption request details by ID |
POST | /redemption-requests | Submit redemption request (locks NAV snapshot) |
POST | /redemption-requests/{id}/fm-accept | Fund Manager accepts redemption request |
POST | /redemption-requests/{id}/approve | Admin: approve redemption (reserve check → payout) |
POST | /redemption-requests/{id}/reject | Admin: fail redemption request with reason (sets status to FAILED) |
POST | /redemption-requests/{id}/complete | Mark redemption as completed after payout |
POST | /redemption-requests/{id}/request-approval | Multi-sig: request co-signer approval for redemption |
POST | /redemption-requests/{id}/cosign | Multi-sig: co-signer approves redemption transfer |
POST | /redemption-requests/{id}/execute-transfer | Multi-sig: execute USDC transfer after co-sign |
Portfolio Positions (2)
| Method | Endpoint | Description |
|---|---|---|
GET | /portfolio-positions | List portfolio positions for current user |
GET | /portfolio-positions/{id} | Get portfolio position details by ID |
Yield Distributions (4)
| Method | Endpoint | Description |
|---|---|---|
GET | /yield-distributions | List yield distributions |
GET | /yield-distributions/{id} | Get yield distribution details by ID |
GET | /yield-distributions/me | Get yield distributions for current investor |
POST | /yield-distributions | Create yield distribution for a pool (period, total_amount) |
Yield Claims (3)
| Method | Endpoint | Description |
|---|---|---|
GET | /yield-claims | List yield claims |
GET | /yield-claims/{id} | Get yield claim details by ID |
POST | /yield-claims | Create yield claim (investor claims accrued yield) |
Yield Reinvest (1)
| Method | Endpoint | Description |
|---|---|---|
POST | /yield/reinvest | Re-deposit claimed yield into pool → new LP minted |
NAV Changes (5)
| Method | Endpoint | Description |
|---|---|---|
GET | /nav-changes | List NAV change proposals |
GET | /nav-changes/{id} | Get NAV change details by ID |
POST | /nav-changes | Propose NAV change (triggers timelock if decrease) |
POST | /nav-changes/{id}/activate | Activate proposed NAV change after timelock |
POST | /nav-changes/{id}/cancel | Cancel pending NAV change proposal |
Funds (5)
| Method | Endpoint | Description |
|---|---|---|
GET | /funds | List all funds |
GET | /funds/{id} | Get fund details by ID |
POST | /funds | Create new fund |
PATCH | /funds/{id} | Update fund details |
DELETE | /funds/{id} | Delete fund |
Fund Members (5)
| Method | Endpoint | Description |
|---|---|---|
GET | /fund-members | List fund members |
GET | /fund-members/{id} | Get fund member details by ID |
POST | /fund-members | Add fund member |
PATCH | /fund-members/{id} | Update fund member |
DELETE | /fund-members/{id} | Remove fund member |
Admin Users (6)
| Method | Endpoint | Description |
|---|---|---|
GET | /admin-users | List admin users |
GET | /admin-users/{id} | Get admin user details by ID |
POST | /admin-users | Create admin user |
POST | /admin-users/invite | Invite admin user via email |
PATCH | /admin-users/{id} | Update admin user |
DELETE | /admin-users/{id} | Delete admin user |
Dashboard (1)
| Method | Endpoint | Description |
|---|---|---|
GET | /dashboard/stats | Get dashboard statistics (TVL, deposits, redemptions, users) |
Activity (1)
| Method | Endpoint | Description |
|---|---|---|
GET | /activity-events | List activity events |
Config (1)
| Method | Endpoint | Description |
|---|---|---|
GET | /config/stablecoins | List supported stablecoins and their contract addresses |
Notifications (3)
| Method | Endpoint | Description |
|---|---|---|
GET | /notification-logs | List notification logs |
POST | /notification-logs/{id}/resend | Resend a failed notification |
POST | /notification-logs/{id}/escalate | Escalate a notification |
Schedulers & Workers
| Type | Name | Description |
|---|---|---|
| SCHED | deposits.scheduler.auto-refund | Auto-refund eligible deposits (every 1 hour) |
| SCHED | pools.scheduler.lifecycle | Pool lifecycle transitions: UPCOMING→ACTIVE, ACTIVE→MATURED (every 1 hour) |
| WORKER | pools.worker.deploy | Async pool deploy worker — deploys smart contracts on-chain (invoked by POST /pools) |