Sample

Deploy and invoke a WASM contract

rust
use karoowa_sdk::{NodeClient, Wallet, abi};
let wallet = Wallet::from_keyfile("./signer.key")?;
let client = NodeClient::connect("http://localhost:8545").await?;
// Deploy a compiled WASM module
let module = std::fs::read("target/wasm32-unknown-unknown/release/escrow.wasm")?;
let deployed = client
.contracts()
.deploy(module)
.sign_and_send(&wallet)
.await?;
// Invoke a method on the deployed contract
let receipt = client
.contracts()
.at(deployed.address)
.call("settle", abi::encode((order_id, recipient))?)
.sign_and_send(&wallet)
.await?;
println!("settled in block {}", receipt.block_number);
Capabilities

What the runtime ships with

Wasmtime VM

Compiled WASM modules with fuel metering and per-call memory limits.

ABI tooling

Encoder / decoder in karoowa-sdk for typed call data and return values.

Receipts

Every invocation produces a signed receipt, indexed and retrievable from the gateway.

Mempool insight

WebSocket subscriptions for tx state from broadcast through inclusion.

Bridge primitives

Cross-chain packet commitments verifiable from contract code.

Agent hooks

Governance, ops and security agents can read receipts and react via the same gateway.

Ready to build on decentralised infrastructure?

Tell us about your project. We will come back with an honest assessment of whether DaaS is the right rail for it.