Browse DIDLab Docs

Build · Verification

Turn a wallet action into verifiable evidence

A successful wallet popup is only the beginning. Transaction receipts and event logs provide the durable record that applications and labs can inspect.

Transaction lifecycle

01

Sign

Wallet approves sender, destination, data/value, and gas.

02

Submit

RPC accepts the signed transaction and returns a hash.

03

Include

A validator includes the transaction in a QBFT block.

04

Verify

Receipt exposes status, block, gas used, and logs.

Inspect the receipt

receipt.ts
const receipt = await tx.wait();

console.log({
  transactionHash: receipt?.hash,
  blockNumber: receipt?.blockNumber,
  status: receipt?.status,
  gasUsed: receipt?.gasUsed.toString()
});

Do not use submission as proof

A transaction hash proves submission, not success. Check the mined receipt status and block number.

Query contract events

Events are EVM logs emitted by a contract. They are useful for frontends, explorers, audit trails, and lab evidence.

events.ts
const logs = await contract.queryFilter(
  contract.filters.ValueChanged(),
  fromBlock,
  "latest"
);

for (const log of logs) {
  console.log({
    transactionHash: log.transactionHash,
    blockNumber: log.blockNumber,
    args: log.args
  });
}

Validation profile

Network

DIDLab Blockchain

Chain ID

252501

Client

Hyperledger Besu

Consensus

QBFT

Native asset

TRUST

Platform token

TT (ERC-20)

Solidity examples

0.8.24

Last validated

August 2026

Go deeper in DIDLab Labs

Public documentation explains the workflow and expected result. Authenticated DIDLab Labs adds managed workspaces, deeper exercises, checkpoints, evidence capture, and instructor assessment.

Open DIDLab Labs