Skip to content

[FEAT] Automated Liquidity Reserve Rebalancing & Cross-Asset Yield Aggregation Vault #408

Description

@jotel-dev

telegram link : t.me/nullifiersystem


1. Summary & Core Promise

Idle provider collateral in contracts/escrow/src/lib.rs generates zero yield. This feature implements an Automated Liquidity Reserve Rebalancing & Yield Aggregation Subsystem. Unallocated escrow funds are deposited into Soroban yield vaults (contracts/escrow/src/yield_vault.rs) to earn 4-8% APY while maintaining a dynamic 20% liquid reserve buffer for instant cash trade match settlements.


2. Background & Architectural Risks

  • Capital Inefficiency: Idle escrow reserves discourage institutional providers from locking large balances.
  • Liquidity Lockup Risk: High trade volume spiking above liquid buffers must instantly recall funds from yield strategies without trade settlement delays.

3. Database Layer Specifications

Migration SQL (026_add_yield_aggregation_vaults.sql)

CREATE TABLE yield_vault_configs (
    vault_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    asset_address VARCHAR(56) NOT NULL,
    liquid_buffer_ratio NUMERIC(3,2) NOT NULL DEFAULT 0.20,
    current_tvl_stroops BIGINT NOT NULL DEFAULT 0
);

CREATE TABLE provider_vault_shares (
    provider_id VARCHAR(64) NOT NULL,
    vault_id UUID NOT NULL REFERENCES yield_vault_configs(vault_id),
    share_balance BIGINT NOT NULL DEFAULT 0,
    PRIMARY KEY (provider_id, vault_id)
);

4. Backend Route & Service Layer Specifications

Route: POST /api/v1/yield/harvest

  1. Harvests accumulated protocol yield from external Soroban strategies.
  2. Updates share-token exchange rates in provider_vault_shares.

5. Background Processors / Workers

Yield Rebalance Worker (apps/api/src/lib/workers/yieldRebalanceWorker.ts)

  • Drives periodic yield compounding and dynamic 20% liquidity buffer optimization.

6. Frontend / UI Component Specifications

Component: mobile/frontend/src/pages/ProviderYieldPortal.tsx

  • React dashboard displaying APY charts, yield harvest buttons, and buffer ratio slider controls.

7. Rigor & Test Plan

  1. Share Math Test (yield_vault_tests.rs): Verifies share exchange rate math during deposits and harvests.
  2. Instant Withdrawal Stress Test (yield_withdrawal_stress.test.ts).

8. Relevant Files Inventory (19 Files)

  • contracts/escrow/src/yield_vault.rs
  • contracts/escrow/src/yield_vault_tests.rs
  • apps/api/src/lib/yield/buffer-optimizer.ts
  • apps/api/src/lib/yield/strategy-adapter.ts
  • apps/api/src/lib/workers/yieldRebalanceWorker.ts
  • apps/api/src/db/migrations/026_add_yield_aggregation_vaults.sql
  • apps/api/src/routes/yield-vaults.ts
  • apps/api/src/lib/liquidity-netting.ts
  • apps/api/src/lib/store.ts
  • apps/api/src/lib/stellar.ts
  • apps/api/src/app.ts
  • contracts/escrow/src/lib.rs
  • mobile/frontend/src/pages/ProviderYieldPortal.tsx
  • mobile/frontend/src/components/YieldApyChart.tsx
  • mobile/frontend/src/components/BufferRatioSlider.tsx
  • packages/shared/src/types/yield.ts
  • packages/shared/src/index.ts
  • apps/api/src/lib/yield/__tests__/buffer-optimizer.test.ts
  • tests/concurrency/yield_withdrawal_stress.test.ts

9. Acceptance Criteria

  • Idle escrow collateral automatically earns APY yield.
  • Trade matching instantly draws from 20% liquid buffer without latency.

10. Contributor Notes

  • ⚠️ Invariant Rule: Share token exchange rate must NEVER decrease during yield harvesting.

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third Campaignextreme

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions