Appearance
Protocol Features
📊 Configurable markets and pools
Markets define global constraints, while each asset pool is configured independently with per-asset risk parameters: open/close LTV, fixed (under development) or variable rates, liability factor, interest curve, fees, eligible collateral rules, and optional allow-lists where applicable. This produces predictable, policy-aligned credit lines suitable for institutional borrowers and RWA issuers. Markets support 7 statuses (Active, BorrowFrozen, BorrowFrozenByAdmin, DepositFrozen, DepositFrozenByAdmin, Frozen, FrozenByAdmin) for fine-grained control over operations.
🔀 Composable batch operations
Users can compose multiple lending operations atomically via submit_requests_batch. This enables advanced workflows — such as leveraged positions (flash borrow + swap + deposit + borrow) — all within a single transaction. Each user position is identified by an ObligationKey that supports an optional seed, allowing a single address to maintain multiple isolated positions.
📈 Reactive interest rate modifier
Each pool carries a reactive interest rate modifier (ir_reactivity_constant, target_utilization_ratio_bps, interest_rate_modifier) that dynamically adjusts rates toward a target utilization, smoothing rate volatility and improving capital efficiency.
🔒 Time-locked governance
Configuration changes are time-locked for safety. Pool creation and config updates use a two-step queue_in_pool_set → apply_pool_set flow; market-level config updates use queue_in_market_update → apply_market_update. Admin transfer follows a 2-step propose_new_admin → accept_proposed_admin process.
🏷️ Per-pool status flags
Individual pools carry a 4-bit status bitfield that allows the admin to independently enable or disable specific operations (deposits, withdrawals, borrows, repayments) per pool, without affecting the entire market.
💸 Utilization & yield orchestrator
Idle liquidity can be routed to pre-approved, conservative yield-bearing assets and pulled back to cash when a borrow arrives. Curator vaults can optimize allocation across pools and risk tiers. This addresses the "new pool underutilization" problem and can improve realized APY for liquidity providers.
🛡️ Guarded risk controls
Markets are isolated from each other. Utilization-based throttles and utilization-based interest curves help keep liquidity healthy. Circuit-breaker logic at the oracle layer prevents price-dependent actions (e.g., borrowing, collateral withdrawals, and liquidations) on obviously bad prices. Liquidations execute in slices rather than all at once, reducing price impact.
⚙️ Stellar-native compliance primitives
Out-of-the-box support for SEP-12 (KYC), SEP-8 (regulated assets), anchors, and fiat ramps enables policy-aligned participation and simpler institutional onboarding on Stellar.
Use Cases
Liquidity provision
Who: Retail/whales, ecosystem treasuries
Flow: Supply USDC/XLM/EURC to an Alula pool → supplied assets are allocated to RWA markets
Outcome: Earn safe and transparent supply yield
Leveraged exposure
Who: Funds, family offices, market makers
Flow: Compose a single atomic batch via submit_requests_batch — flash borrow USDC → swap into RWA asset on AMM DEX → deposit as collateral → borrow USDC to repay the flash loan
Outcome: Gain leveraged exposure to the chosen position using composable batch operations
Hedging & risk management
Who: Institutions, hedge funds, corporates
Flow: Supply RWA as collateral into a permissioned pool → borrow USDC → use it to short RWAs via perps/synths or diversify exposure (borrow-and-sell only in permissioned, allow-listed venues)
Outcome: Hedge risk while keeping RWAs on the balance sheet
Issuer / originator credit line (RWA-backed borrowing)
Who: Tokenized T-bill/MMF issuers, trade-finance originators, structured-credit vaults
Flow: Supply eligible RWA collateral → borrow USDC up to the pool's LTV limit → use for new originations, redemption bridges, or working capital → draw/repay within borrower caps; gated by NAV freshness and pool health
Outcome: Predictable working capital without selling RWAs, with clear limits and automated risk controls
Market-maker funding (short-dated, revolving)
Who: KYC'd market makers and arb desks on allow-listed venues
Flow: Post eligible collateral (e.g., tokenized T-bill/MMF units; XLM if enabled per pool policy) → borrow USDC → deploy on listed venues → at term, repay or roll; limits and rates auto-adjust with utilization and risk caps
Outcome: Low-friction short-term funding with clear caps and guardrails; exits remain open under stress
Fee Model
Alula's revenue model uses a dual-layer fee structure implemented entirely within the market smart contract. All protocol-side recipients (including the insurance fund and treasury) are configured as beneficiaries, enabling a unified routing model while allowing different split configurations per fee source.
Take rate (streaming)
As interest accrues, a configured take rate factor diverts a portion of borrower interest before it reaches lenders. The accrued take rate remains in the market contract and is distributed lazily according to the pool's take rate beneficiary configuration when the permissionless distribute_pool_fees or distribute_all_pools_fees method is called. Take rate beneficiaries are set via set_take_rate_fees_beneficiaries. Supply APY is always shown net of the take rate.
Operation fee (atomic)
Certain user operations charge an operation fee in basis points of the operation's principal (for example borrow or flash_loan). If a valid referrer is configured in the pool's PoolFeeConfig.referrers, the referrer payout is settled instantly in the same transaction as an immediate cut of the origination fee. The remaining net fee accrues in the market contract and is routed on distribute_pool_fees (or distribute_all_pools_fees) according to the pool's operation fee beneficiary configuration, set via set_operation_fees_beneficiaries.