Before running functional tests, verify the BME module and dependencies are healthy. These checks establish a baseline and confirm the testnet is ready for testing.
Test 0.1: Node and Network Connectivity
Objective: Verify testnet node is accessible and synced
User Actions:
- Check node status:
Terminal window akash status - Verify node is synced (catching_up: false)
- Note current block height
Expected Results:
- Node responds
catching_up: false- Block height advancing
Test 0.2: BME Module Enabled
Objective: Verify BME module is loaded and responding
User Actions:
- Query BME params:
Terminal window akash query bme params - Verify response includes expected parameters
Expected Results:
- Query succeeds (no “unknown query path” error)
- Returns: CircuitBreakerWarnThreshold, CircuitBreakerHaltThreshold, MinEpochBlocks, EpochBlocksBackoff
Test 0.3: Oracle Health Check
Objective: Verify oracle is providing price feeds
User Actions:
- Query oracle prices:
Terminal window akash query oracle prices - Filter for specific denoms if needed:
Terminal window akash query oracle prices --asset-denom uaktakash query oracle prices --asset-denom uact - Verify prices are reasonable and recent
Expected Results:
- AKT price returns valid USD value (e.g., ~0.45 in example)
- ACT price returns ~$1.00 (pegged)
- Timestamps are recent (not stale)
Test 0.4: BME Vault State Baseline
Objective: Record initial BME vault state for comparison during testing
User Actions:
- Query full BME vault state:
Terminal window akash query bme vault-state - Record baseline values:
- Balances (VaultAKT)
- TotalBurned
- TotalMinted
- RemintCredits
Expected Results:
- Query succeeds
- All fields returned (may be zero on fresh testnet)
- Document baseline for later comparison
Test 0.5: Collateral Ratio and Status Check
Objective: Verify BME status query returns collateral ratio and system health
User Actions:
- Query BME status:
Terminal window akash query bme status
Example Output:
collateral_ratio: "0.999328857700195767"halt_threshold: "0.900000000000000000"mints_allowed: truerefunds_allowed: truestatus: mint_status_healthywarn_threshold: "0.950000000000000000"Expected Results:
collateral_ratio: Decimal value (e.g., ~0.99 means 99% collateralized)status:mint_status_healthy(required to proceed with most tests)mints_allowed:truerefunds_allowed:truewarn_threshold:0.95(status changes to warning below this)halt_threshold:0.90(mints halt below this)
If status is NOT mint_status_healthy:
mint_status_warning: Collateralization Ratio dropped below 0.95 - investigatemint_status_halt_cr: Collateralization Ratio dropped below 0.90 - mints blocked, investigate before proceedingmint_status_halt_oracle: Oracle failure - investigate oracle health (Test 0.3)
Test 0.6: BME Params Check
Objective: Verify BME module parameters are configured
User Actions:
- Query BME params:
Terminal window akash query bme params
Expected Results:
- Query succeeds
- Returns epoch settings, thresholds, and other BME configuration
Test 0.7: Token Supply Baseline
Objective: Record token supplies for inflation tracking
User Actions:
- Query total AKT supply:
Terminal window akash query bank total --denom uakt - Query total ACT supply (OutstandingACT):
Terminal window akash query bank total --denom uact - Document baseline values
Expected Results:
- AKT supply returned (note for inflation tracking in later tests)
- ACT supply returned (may be 0 on fresh testnet)
Test 0.8: ACT Supply Baseline
Objective: Record initial ACT supply for tracking during tests
User Actions:
- Query total ACT supply:
Terminal window akash query bank total --denom uact - Record the value for comparison during testing
Expected Results:
- Query succeeds
- Returns total ACT in circulation (may be 0 on fresh testnet)
- Document baseline for later comparison
Note: This helps track inflationary events during testing. Compare with vault-state.total_minted.uact.
Test 0.9: Test Wallet Setup
Objective: Prepare test wallet with AKT for subsequent tests
User Actions:
-
Create a new test wallet:
Terminal window akash keys add test-accountImportant: Save the mnemonic phrase securely
-
Note the wallet address from output
-
Fund from faucet (testnet faucet provides 100 AKT per request)
-
Verify balance:
Terminal window akash query bank balances <test-wallet-address>
Expected Results:
- Wallet created successfully
- After faucet: balance shows
100000000uakt(100 AKT) - No ACT balance initially (
uactnot listed)
Note: Faucet provides 100 AKT per request. For tests requiring more AKT, either:
- Request from faucet multiple times (if allowed)
- Transfer from another funded account
Test 0.10: Provider Availability (If Testing Deployments)
Objective: Verify at least one provider is available for deployment tests
User Actions:
- Query active providers:
Terminal window akash query provider list - Verify at least one provider is online
Expected Results:
- At least one provider listed
- Provider status indicates availability
- If no providers, deployment tests (Category 1-3) cannot proceed
Test 0.11: Market Params Check (Bid Deposit Denom)
Objective: Verify market module accepts AKT for bid deposits (not ACT)
User Actions:
- Query current market params via REST API (CLI not available for this query):
Terminal window curl -s https://testnetapi.akashnet.net/akash/market/v1beta5/params | jq - Check
bid_min_depositdenom - should beuakt
Expected Results:
- Response shows
bid_min_deposit.denomisuakt - If denom is
uact, providers cannot bid - requires governance fix (see below)
Example Response (problematic - needs fix):
{ "params": { "bid_min_deposit": { "denom": "uact", // <-- PROBLEM: should be "uakt" "amount": "500000" }, "order_max_bids": 20 }}If Fix Required - Update Market Params via Governance:
-
Get gov module authority address:
Terminal window akash query auth module-account govFor BME testnet:
akash10d07y265gmmuvt4z0w9aw880jnsr700jhe7z0f -
Create proposal JSON file (
market-params-fix.json):Terminal window cat > market-params-fix.json << 'EOF'{"messages": [{"@type": "/akash.market.v1beta5.MsgUpdateParams","authority": "akash10d07y265gmmuvt4z0w9aw880jnsr700jhe7z0f","params": {"bid_min_deposit": {"denom": "uakt","amount": "500000"},"order_max_bids": 20}}],"metadata": "ipfs://CID","deposit": "50000000uakt","title": "Fix Market Params - Bid Deposit Denom","summary": "Update bid_min_deposit to use uakt instead of uact. Providers must deposit in AKT, not ACT.","expedited": true}EOFImportant:
- Type URL must be
/akash.market.v1beta5.MsgUpdateParams(not v1) - Deposit must be 50000000uakt (50 AKT) to enter voting period
- Type URL must be
-
Submit expedited proposal:
Terminal window akash tx gov submit-proposal market-params-fix.json \--from default \--gas auto \--gas-adjustment 1.5 \--gas-prices 0.025uakt \-y -
Get proposal ID from tx result, then vote:
Terminal window # Find proposal IDakash query gov proposals --status voting_period# Vote yes (as validator)akash tx gov vote <proposal-id> yes \--from default \--gas auto \--gas-adjustment 1.5 \--gas-prices 0.025uakt \-y -
Monitor proposal status (expedited = ~5 min):
Terminal window # Check proposal statusakash query gov proposal <proposal-id># Watch for status change to PROPOSAL_STATUS_PASSEDwatch -n 10 "akash query gov proposal <proposal-id> | grep status" -
Verify params updated after proposal passes:
Terminal window curl -s https://testnetapi.akashnet.net/akash/market/v1beta5/params | jqConfirm
bid_min_deposit.denomis nowuakt
Note: CLI akash query market params is not implemented. Use REST API for this query.
Test 0.12: ACT Minting Verification
Objective: Verify ACT can be minted from AKT and appears in wallet after epoch processing
User Actions:
-
Check initial balance:
Terminal window akash query bank balances <user-address> -
Mint ACT from AKT:
Terminal window akash tx bme mint-act 100000000uakt --from <wallet> -y -
Check BME vault state immediately:
Terminal window akash query bme vault-stateNote: AKT should appear in vault immediately
-
Wait for epoch processing (~1 minute / 10 blocks):
Terminal window # Check BME status for epoch infoakash query bme status# Wait, then check balance againsleep 60akash query bank balances <user-address>
Expected Results:
- AKT transferred to vault immediately
- After epoch: ACT appears in user’s bank balance
- ACT amount = AKT deposited × oracle price
vault-stateshows: balances.uakt ↑, balances.uact ↑, remint_credits ↑, total_minted.uact ↑
Note: ACT minting is epoch-based. Default min_epoch_blocks = 10 blocks. If Collateralization Ratio drops below 0.95, epoch period increases.