Deployment Closure & ACT Burns

Two-Step Refund Flow: Converting deployment escrow back to AKT requires two steps:

  1. Close Deployment → Remaining ACT escrow returns to user’s wallet
  2. Burn ACT → User converts ACT to AKT via akash tx bme burn-act

Important: Closing a deployment returns ACT (not AKT). The price-related behavior (remint credits, inflation) occurs during the burn-act step, not during closure.


Test 2.1: Close Deployment - ACT Escrow Returned

Objective: Verify closing deployment returns ACT escrow to user (not AKT)

User Actions:

  1. Record pre-deployment balances:

    Terminal window
    akash query bank balances <user-address>

    Note the ACT balance.

  2. Create deployment with ACT deposit:

    Terminal window
    akash tx deployment create deploy.yml --deposit 20000000uact --from <wallet> -y
  3. Complete lease creation (see Category 1 for workflow):

    Terminal window
    # Wait for bid
    sleep 10
    akash query market bid list --owner <user-address> --dseq <dseq> | head -n 20
    # Create lease
    akash tx market lease create --dseq <dseq> --gseq 1 --oseq 1 \
    --provider <provider-address> --from <wallet> -y
  4. Record mid-state (ACT should have decreased):

    Terminal window
    akash query bank balances <user-address>
  5. Let deployment run briefly (~1-2 minutes)

  6. Close deployment:

    Terminal window
    akash tx deployment close --dseq <dseq> --from <wallet> -y
  7. Query final state:

    Terminal window
    akash query bank balances <user-address>

Expected Results:

  • After deployment creation: User ACT balance decreased by deposit amount
  • After closure: User ACT balance increased (escrow returned minus compute used)
  • User AKT balance unchanged (minus gas fees)
  • ACT returned, not AKT — this is expected behavior

Proof to Submit:

  • Pre-deployment ACT balance
  • Post-closure ACT balance (showing ACT returned)
  • Deployment close tx hash

Test 2.2: Burn ACT → AKT (Basic Operation)

Objective: Verify user can burn ACT to receive AKT

User Actions:

  1. Record pre-burn state:

    Terminal window
    akash query bank balances <user-address>
    akash query bme vault-state
  2. Burn ACT:

    Terminal window
    akash tx bme burn-act 50000000uact --from <wallet> -y
  3. Wait for epoch processing (~90 seconds):

    Terminal window
    sleep 90
  4. Query final state:

    Terminal window
    akash query bank balances <user-address>
    akash query bme vault-state

Expected Results:

  • User ACT decreased by burn amount
  • User AKT increased (based on current oracle price)
  • Vault total_burned.uact increased
  • Remint credits used (if available)

Proof to Submit:

  • Pre-burn and post-burn balances
  • Vault state showing total_burned increased

Test 2.3: Burn ACT with Price Movement

Objective: Verify correct AKT payout based on price change between mint and burn

Why Fresh Account: Using a dedicated account makes the math transparent — you can verify exact amounts without interference from prior balances.

User Actions:

Step 1: Setup

Terminal window
# Create dedicated test account
akash keys add burn-test-price
# Get the address
akash keys show burn-test-price -a

Fund account via testnet faucet: https://faucet.dev.akash.pub (500 AKT)

Step 2: Verify Funded

Terminal window
akash query bank balances $(akash keys show burn-test-price -a)

Step 3: Capture Price at Mint Time (P1)

Terminal window
echo "=== MINT TIME ==="
echo "Time: $(date -u)"
akash query oracle prices | head -n 15

Write down P1 price.

Step 4: Mint ACT

Terminal window
akash tx bme mint-act 100000000uakt --from burn-test-price -y
# Wait for epoch
sleep 90
# Check ACT received
akash query bank balances $(akash keys show burn-test-price -a)

Write down ACT received.

Step 5: Wait for Price Movement (~5+ minutes)

Terminal window
sleep 300

Step 6: Capture Price at Burn Time (P2)

Terminal window
echo "=== BURN TIME ==="
echo "Time: $(date -u)"
akash query oracle prices | head -n 15

Write down P2 price.

Step 7: Burn All ACT

Terminal window
# Use exact ACT amount from Step 4
akash tx bme burn-act <ACT_AMOUNT>uact --from burn-test-price -y
# Wait for epoch
sleep 90

Step 8: Check Final Balance

Terminal window
akash query bank balances $(akash keys show burn-test-price -a)

Evaluating Results:

If P2 > P1 (price increased):

  • User receives fewer AKT than originally sent
  • This is expected: same USD value, but AKT is worth more
  • Example: Sent 100 AKT at \(0.32 → received ~31.25 ACT → burned at\)0.35 → receive ~89.3 AKT

If P2 < P1 (price decreased):

  • User receives more AKT than originally sent
  • This is expected: same USD value, but AKT is worth less
  • Example: Sent 100 AKT at \(0.32 → received ~31.25 ACT → burned at\)0.29 → receive ~107.8 AKT

Key Verification: The AKT received should equal: ACT_burned ÷ P2

Either price direction is valid for this test — the goal is to verify the math is correct based on current oracle price.

Proof to Submit:

  • P1 (price at mint time)
  • P2 (price at burn time)
  • ACT received from mint
  • Final AKT balance
  • Calculation showing AKT received matches expected value based on P2

Summary

TestScenarioKey Verification
2.1Close deploymentACT returned (not AKT)
2.2Basic burnACT → AKT works
2.3Price movementAKT returned matches current price (fewer if up, more if down)