API

Asaari — pool, tranches, subscribe, remittance, distribute, claim.

Base URL: https://demo.asaari.io

System

MethodPathBodyQueryDescription
GET/healthHealth check and environment info
GET/settingsGet current tranche settings
PUT/settings{"seniorCapital":"number","mezzanineCapital":"number","juniorCapital":"number","seniorCouponBps":"number","mezzanineCouponBps":"number","seniorTargetYield":"number","mezzanineTargetYield":"number","juniorTargetYield":"number","reserveTopupPct":"number","reserveCapPct":"number","liquidityPoolPct":"number (0-100, optional pre-funded buffer)","numLoans":"number","loanSeed":"number","btcPriceUsd":"number","enableStressTesting":"boolean","stressMonths":"number[]","revenueSettings":"object"}Update tranche settings

Auth

MethodPathBodyQueryDescription
POST/auth/login{"username":"string","password":"string"}Login — returns token and user
POST/auth/logoutLogout — invalidate session
GET/auth/meGet current user

Metadata

MethodPathBodyQueryDescription
GET/metadataProduct and tranche metadata

Pools

MethodPathBodyQueryDescription
POST/pools{"poolId":"string"}Create pool
GET/pools/:poolIdGet pool config, reserve, tranche supply
POST/pools/:poolId/whitelist{"address":"string"}Whitelist address
POST/pools/:poolId/subscribe{"trancheId":"string","address":"string","amountUsdc":"number"}Subscribe (deposit USDC, mint tokens)
GET/pools/:poolId/balanceaddress, trancheIdGet holder tranche balance

Loans

MethodPathBodyQueryDescription
GET/pools/:poolId/loansseed (default 42)Loan book + interest summary
POST/pools/:poolId/loans/generate{"seed":"number"}Generate and link loan book to pool
POST/pools/:poolId/loans{"loanBookPath":"string"}Link loans to pool from file or inline array

Remittance & claims

MethodPathBodyQueryDescription
POST/pools/:poolId/remittance{"amountUsdc":"number"}Record USDC remittance
POST/pools/:poolId/principal-paydown{"amountUsdc":"number"}Record principal paydown
POST/pools/:poolId/distribute{"epochId":"number"}Distribute epoch (waterfall)
POST/pools/:poolId/claim{"epochId":"number","address":"string","trancheId":"string"}Claim epoch payout
GET/pools/:poolId/epoch/:epochIdEpoch claimable amounts
GET/pools/:poolId/capital-returnCapital return amounts at maturity
POST/pools/:poolId/capital-return/claim{"address":"string","trancheId":"string"}Claim capital return at maturity

Web3 (demo)

MethodPathBodyQueryDescription
POST/web3/pools/:poolId/distribute-onchain{"epochId":"number","chainId":"number","distributorAddress":"string","signature":"string"}Mock on-chain distribution
GET/web3/pools/:poolId/distribution/:epochIdchainIdFetch mock on-chain distribution
POST/web3/pools/:poolId/claim-onchain{"epochId":"number","trancheId":"string","address":"string","chainId":"number","signature":"string"}Mock on-chain claim
GET/web3/tx/:txHashchainIdFetch mock transaction

Oracle & Liquidation

MethodPathBodyQueryDescription
GET/oracle/btc-priceGet current BTC price (USD)
PUT/oracle/btc-price{"priceUsd":"number"}Set BTC price for stress testing
GET/pools/:poolId/loans/liquidatablepriceUsd, ltvThresholdBpsGet loans eligible for liquidation
POST/pools/:poolId/loans/liquidate{"loanIds":"string[]","recoveryRate":"number"}Execute liquidations
POST/pools/:poolId/stress/evaluate{"priceUsd":"number","warningLtvBps":"number","marginCallLtvBps":"number","partialLiqLtvBps":"number","marginCallResponsePct":"number","partialLiqTargetLtvBps":"number","recoveryRate":"number","seed":"number","loans":"LoanRecord[] (optional)","rngSeed":"number (optional)"}Evaluate LTV cascade stress scenario

Risk (Monte Carlo)

MethodPathBodyQueryDescription
POST/risk/monte-carlo{"poolId":"string (optional)","horizon_days":"number (optional)","n_paths":"number (optional)","seed":"number (optional)","spot0":"number (optional)","market":"object (optional)"}Run Monte Carlo simulation
GET/risk/configGet default Monte Carlo config
POST/risk/calibrate{"years_back":"number (optional)"}Calibrate market model from BTC history
GET/risk/calibrate/statusGet calibration status and cached result
GET/risk/scenariosList available stress scenarios
POST/risk/scenarios/run{"scenarioId":"string","spot0":"number (optional)"}Run a single scenario by ID
POST/risk/scenarios/compare{"scenarioIds":"string[]","spot0":"number (optional)"}Run and compare multiple scenarios

Revenue

MethodPathBodyQueryDescription
POST/revenue/calculate{"seniorCapital":"number","mezzanineCapital":"number","juniorCapital":"number","totalPrincipal":"number","numMonths":"number","annualInterest":"number","avgOutstandingBalance":"number","actualPlatformFees":"number","seniorClaims":"number[]","mezzanineClaims":"number[]","juniorClaims":"number[]","remittances":"number[]","revenueSettings":"object (optional)"}Calculate platform revenue for a deal (upfront, recurring, junior, spread, performance, secondary fees)

Demo

MethodPathBodyQueryDescription
POST/demo/resetReset all state (for demo replay)
POST/demo/setup{"poolId":"string (default demo-pool)","loanSeed":"number","walletSuffix":"Wallet|Stress"}Full demo setup: reset, create pool, whitelist, subscribe, generate loans (allows originator)

← Back to app · JSON