BME Testnet Test Plan

Overview

This test plan validates BME functionality through real user workflows on testnet. Tests are triggered by user actions (creating deployments, closing deployments, funding wallets) rather than direct message invocation. BME mechanics are verified by observing state changes after user actions complete.

Prerequisites

  • Testnet deployed with BME-enabled node version (branch: bme)
  • Oracle module configured with price feeds
  • Testnet faucet available for funding test wallets
  • Akash CLI (akash or provider-services) configured for testnet
  • Console access (if testing credit card / UI flows)
  • Access to query BME state (via CLI or API)
  • Provider(s) running on testnet to accept deployments
  • Ability to manipulate oracle prices for price movement scenarios (testnet admin)
  • Ability to stop/start oracle feeds (for oracle halt testing)

Key Metrics to Monitor

These should be queried before and after each test:

MetricQuery MethodDescription
OutstandingACTakash query bme vault-stateTotal ACT supply (system liabilities)
VaultAKTakash query bme vault-stateAKT held in BME module account
RemintCreditsakash query bme vault-stateAvailable AKT credits before new minting required
TotalBurnedakash query bme vault-stateCumulative ACT burned
TotalMintedakash query bme vault-stateCumulative AKT minted (inflationary)
collateral_ratioakash query bme statusCollateral Ratio (decimal, e.g., 0.99)
statusakash query bme statusCurrent status (mint_status_healthy/warning/halt_cr/halt_oracle)
User AKT Balanceakash query bank balances <addr>User’s AKT and ACT
Oracle Priceakash query oracle prices --asset-denom uaktCurrent AKT/USD price

Test Categories

Category 0: Pre-Flight Health Checks

Verify BME module and dependencies are healthy before testing. Run these first!

  • Node connectivity
  • BME module enabled
  • Oracle health
  • Vault state baseline
  • Test wallet setup
  • Provider availability

Category 1: Deployment Creation

Test AKT → ACT conversion through deployment lifecycle.

  • ACT minting
  • Creating deployments with ACT
  • Multiple deployments
  • Top-up existing deployments

Category 2: Deployment Closure & Refunds

Test ACT → AKT conversion on deployment close.

  • Price unchanged scenarios
  • Price increase scenarios (deflationary)
  • Price decrease scenarios (inflationary)
  • Partial remint credit usage

Category 3: Provider Settlement

Verify providers receive ACT and can burn to AKT.

  • Provider receives ACT at settlement
  • Provider burns ACT (non-inflationary)
  • Price movement scenarios
  • Multiple settlements

Category 4: Epoch-Based Processing

Test epoch-based mint/burn processing.

  • Verify epoch delays
  • Multiple requests before epoch
  • Circuit breaker during epochs
  • Pending operations detection

Category 5: Direct Message Operations

Test direct mint/burn commands (MsgMintACT, MsgBurnACT, MsgBurnMint).

  • Direct AKT → ACT conversion
  • Direct ACT → AKT conversion
  • Different recipient addresses
  • Input validation
  • Circuit breaker behavior

Category 6: Circuit Breaker & Mint Status

⚠️ Requires Akash Core Team Member - Oracle price manipulation needed.

  • MintStatusHealthy
  • MintStatusWarning
  • MintStatusHaltCR (collateral ratio)
  • MintStatusHaltOracle
  • State transitions
  • Recovery scenarios

Category 7: Observability & State Verification

Verify BME state queries and event emissions.

  • Vault state changes
  • Query commands
  • Event emissions
  • Ledger records

Category 8: Edge Cases & Error Handling

Test error conditions and edge cases.

  • Insufficient funds
  • Invalid swap routes
  • Concurrent operations
  • SDL pricing validation

Category 9: End-to-End Scenarios

Complete user journeys combining multiple operations.

  • Full deployment lifecycle
  • Price volatility scenarios
  • Circuit breaker stress testing
  • Multi-user concurrent activity

Summary Checklist

CategoryTestsPriority
Pre-Flight Health Checks0.1-0.12Critical (Run First)
Deployment Creation1.1-1.4Critical
Deployment Closure/Refunds2.1-2.4Critical
Provider Settlement3.1-3.4Critical
Epoch-Based Processing4.1-4.4High
Direct Message Operations5.1-5.16Critical
Circuit Breaker/Mint Status6.1-6.7⚠️ Requires Akash Core Team
Observability/State Verification7.1-7.6Medium
Edge Cases8.1-8.6High
End-to-End9.1-9.4Critical

Testnet Admin Requirements

Several tests require testnet administrator actions:

ActionTests Requiring
Adjust oracle price2.2, 2.3, 3.3, 3.4, 6.2, 6.3, 9.2, 9.3
Stop oracle updates6.4
Trigger specific mint status4.3, 5.13, 5.14, 6.3, 6.4, 6.5, 6.6, 9.3

Key Implementation Notes

  1. Remint Credits are active - System tracks credits and uses them before minting new AKT
  2. Two-phase execution - RequestBurnMint queues operations, executeBurnMint processes them
  3. Four mint statuses - Healthy, Warning, HaltCR, HaltOracle
  4. Dynamic epoch timing - Adjusts based on Collateralization Ratio
  5. Asymmetric circuit breaker - AKT→ACT blocked during halt, ACT→AKT still works