Pre-Flight Health Checks

Prerequisites — Version Check

⚠️ IMPORTANT: Verify your environment before proceeding.

Many testnet users have encountered issues due to incorrect binary versions. Run the following commands and confirm your output matches exactly:

Terminal window
echo "=== VERSION CHECK ==="
echo ""
echo "Akash CLI:"
akash version
echo ""
echo "Provider Services:"
provider-services version
echo ""
echo "Chain ID:"
echo $AKASH_CHAIN_ID
echo ""
echo "RPC Node:"
echo $AKASH_NODE

Your output MUST match:

=== VERSION CHECK ===
Akash CLI:
2.1.0-a17
Provider Services:
v0.10.5
Chain ID:
testnet-8
RPC Node:
https://testnetrpc.akashnet.net:443

❌ DO NOT PROCEED if your output differs.

Akash CLI Download: If your akash version does not show 2.1.0-a17, download the correct version directly from: https://github.com/akash-network/node/releases/tag/v2.1.0-a17


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:

  1. Check node status:
    Terminal window
    akash status | jq '.sync_info | {latest_block_height, catching_up, latest_block_time}'
  2. Verify node is synced (catching_up: false)
  3. Note current block height

Expected Results:

  • Node responds
  • catching_up: false
  • Block height advancing

Proof to Submit:

  • Output showing catching_up: false and current block height

Test 0.2: BME Module Enabled

Objective: Verify BME module is loaded and responding

User Actions:

  1. Query BME params:
    Terminal window
    akash query bme params
  2. Verify response includes expected parameters

Expected Results:

  • Query succeeds (no “unknown query path” error)
  • Returns: circuit_breaker_warn_threshold, circuit_breaker_halt_threshold, min_epoch_blocks, epoch_blocks_backoff

Proof to Submit:

  • Full output of akash query bme params

Test 0.3: Oracle Health Check

Objective: Verify oracle is providing AKT/USD price feeds with recent timestamps

User Actions:

  1. Query oracle prices and current time:
    Terminal window
    akash query oracle prices | head -n 15
    date -u +"%Y-%m-%dT%H:%M:%S"
  2. Confirm price entries exist for denom: akt with base_denom: usd
  3. Check the timestamp field — should be within 60 seconds of current time
  4. Verify the price value is reasonable (e.g., AKT ~\(0.30-\)5.00 range)

Expected Results:

  • Oracle returns price entries (prices list is NOT empty)
  • Entries show denom: akt and base_denom: usd
  • Price value is reasonable (non-zero, non-negative)
  • Most recent timestamp is within 60 seconds of current UTC time

Proof to Submit:

  • Oracle prices output showing recent timestamp
  • Current UTC time for comparison

Test 0.4: BME State Baseline

Objective: Record initial BME vault state for comparison during testing

User Actions:

  1. Query full BME vault state:
    Terminal window
    akash query bme vault-state
  2. Record baseline values for later comparison

Expected Results:

  • Query succeeds
  • All fields returned: balances, total_burned, total_minted, remint_credits

Proof to Submit:

  • Full output of akash query bme vault-state

Test 0.5: Collateral Ratio Check

Objective: Verify collateral ratio calculation is working

Note: Tests 0.5 and 0.6 use the same command. This test focuses on the collateral_ratio value; Test 0.6 focuses on the status field and flags.

User Actions:

  1. Query BME status:
    Terminal window
    akash query bme status
  2. Locate the collateral_ratio field in the response
  3. Verify value is reasonable (typically 0.9 - 2.0+ range when healthy)

Expected Results:

  • collateral_ratio field is present with a decimal value
  • Value is > halt_threshold (0.90) for healthy operation
  • Value is > warn_threshold (0.95) for normal operation

Proof to Submit:

  • Output showing collateral_ratio value

Test 0.6: Mint Status Check

Objective: Verify BME mint status is Healthy (required for most testing)

Note: Uses same command as Test 0.5. This test focuses on the status field and boolean flags.

User Actions:

  1. Query BME status (if not already captured in 0.5):
    Terminal window
    akash query bme status
  2. Check the status field and related flags

Expected Results:

  • status: mint_status_healthy (required to proceed with most tests)
  • mints_allowed: true
  • refunds_allowed: true

If status is NOT mint_status_healthy:

  • mint_status_warning: Collateral Ratio below 0.95 — investigate
  • mint_status_halt_cr: Collateral Ratio below 0.90 — mints blocked
  • mint_status_halt_oracle: Oracle failure — check Test 0.3

Proof to Submit:

  • Output showing status: mint_status_healthy and mints_allowed: true

Test 0.7: Token Supply Baseline

Objective: Record token supplies for inflation tracking

User Actions:

  1. Query total AKT supply:
    Terminal window
    akash query bank total --denom uakt
  2. Query total ACT supply:
    Terminal window
    akash query bank total --denom uact

Expected Results:

  • AKT supply returned (baseline for inflation tracking)
  • ACT supply returned (may be 0 on fresh testnet)

Proof to Submit:

  • Both supply values (uakt and uact amounts)

Test 0.8: Vault State Baseline (Pending Operations Check)

Objective: Verify no unexpected pending operations

Note: Pending operations are inferred by comparing balances.uakt vs remint_credits. If balances.uakt > remint_credits, there are pending mint operations.

User Actions:

  1. Query current vault state:
    Terminal window
    akash query bme vault-state
  2. Compare balances.uakt to remint_credits

Expected Results:

  • Query succeeds
  • If balances.uaktremint_credits: no significant pending operations
  • If balances.uakt > remint_credits: pending mints exist (may be from prior testing)

Proof to Submit:

  • Vault state output
  • Note if any pending operations detected

Test 0.9: Test Wallet Setup

Objective: Prepare test wallet with AKT for subsequent tests

User Actions:

  1. Create a new test wallet (or use existing):

    Terminal window
    akash keys add test-account

    Important: Save the mnemonic phrase securely

  2. Note the wallet address from output

  3. Fund from faucet:

  4. Verify balance:

    Terminal window
    akash query bank balances <your-wallet-address>

Expected Results:

  • Wallet exists with AKT balance
  • After faucet: balance shows 500000000uakt (500 AKT)

Proof to Submit:

  • Wallet address
  • Balance output showing AKT

Test 0.10: Provider Availability

Objective: Verify at least one provider is available for deployment tests

User Actions:

  1. Query active providers:
    Terminal window
    akash query provider list
  2. Verify at least one provider is listed

Expected Results:

  • At least one provider listed with host_uri
  • If no providers, deployment tests (Category 1-3) cannot proceed

Proof to Submit:

  • Provider list output showing at least one provider