Core API

// Minimal test (no wallet)
TestFramework::new()
    .validators(10)
    .run()
    .await;

// Infrastructure test (no transactions)
TestFramework::new()
    .validators(30)
    .executors(10)
    .with_chaos(ChaosProfile::Realistic)
    .expect_system_health()
    .run()
    .await;

TestFramework::new()
      .validators(30)
      .executors(10)
      .network_layout(NetworkLayout::Full)
      .initialize_wallet(funds: 100000, users: 50)
      .test_transactions()
          .rate(per_second: 500)
          .mix(TransactionMix {
              transfers: 60,
              inscriptions: 20,
              blobs: 20,
          })
          .gas_price(100)
          .apply()
      .test_da()
          .blob_rate(per_minute: 50)
          .blob_size(256..1024)
          .da_network(dispersal: 2, subnets: 20)
          .apply()
      .chaos()
          .kill_nodes(5, after_minutes: 10)
          .rolling_restart(batch: 3, interval: 2.minutes)
          .partition_network([[0..15], [15..30]], duration: 5.minutes)
          .random_failures(rate: 0.1, duration: 1.hour)
          .maintenance_downtime(nodes: [0,1,2], duration: 10.minutes)
          .apply()
      .test_cryptarchia()
          .security_param(10)
          .active_slot_coeff(0.9)
          .apply()
      .expect_consensus_liveness(blocks_per_hour: 300)
      .expect_transaction_throughput(tps: 100)
      .expect_da_system_health(success_rate: 95)
      .expect_network_connectivity(min_peers: 8)
      .expect_partition_recovery(max_minutes: 2)
      .expect_restart_recovery(max_minutes: 5)
      .expect_system_integrity()
      .overnight_test()
      .run()
      .await;

Transaction Generation (Requires Wallet)

.test_transactions()
    .rate(per_second: 1000)
    .mix(TransactionMix {
        transfers: 60,
        inscriptions: 20,
        blobs: 20,
    })
    .gas_price(100)

Data Availability

.test_da_system()
    .blob_rate(per_minute: 50)               
    .blob_size(256..1024)                    
    .da_network(dispersal: 2, subnets: 20) 

Chaos Engineering

.chaos()
    .kill_nodes(5, after_minutes: 10)                    
    .rolling_restart(batch: 3, interval: 2.minutes)    stration
    .partition_network([[0..15], [15..30]], duration: 5.minutes) 
    .random_failures(rate: 0.1) 

System Validation

.expect_consensus_liveness(blocks_per_hour: 300)
.expect_da_system_health(success_rate: 95) 
.expect_network_connectivity(min_peers: 8)
.expect_partition_recovery(max_minutes: 2)
.expect_transaction_throughput(tps: 100) 

YAML Configuration

network:
  validators: 30
  executors: 10

wallet:
  initialize: true
  total_funds: 100000
  num_users: 50

transactions:
  rate_per_second: 500
  mix:
    transfers: 60
    inscriptions: 20
    blobs: 20

chaos:
  - kill_nodes: {count: 5, after: 10m}
  - partition: {groups: [[0,15],[15,30]], duration: 5m}
  - rolling_restart: {batch: 3, interval: 2m}

expectations:
  min_blocks_per_hour: 300
  da_success_rate: 95
  max_recovery_time: 2m

duration: 4h

TestFramework::from_file("config.yaml").run().await;