burneh
Crypto

A dApp front-end that tells the truth about the chain.

Connecting a wallet is the easy part. We build the interface around it: transactions simulated before you sign, state tracked to real confirmations, and a UI that walks itself back when a block drops, instead of leaving a green checkmark on money that never moved.

Start a build
5 connectors6 chainsreorg-safe

Hit send. The wallet builds, simulates, signs, and broadcasts, then the block panel shows it land and stack confirmations. Only called done once the chain agrees.

Wallet
0x9f…e41b
balance
2.4108 ETH
sending
0.1 ETH
Build transaction
Simulate
Sign in wallet
Broadcast
Confirm
Ethereumhead #21,450,118
your transaction
idle
#114
#115
#116
#117
#118head

When a block drops, the UI tells the truth.

A naive dApp shows a green checkmark and never takes it back. Trip a reorg and watch this one walk the state back to pending, then re-confirm on the canonical chain, honestly.

Confirmed · 3 deepbalance 2.3108 ETH
#100
#101
#102your tx
#103

Your balance reflects a settled transfer.

what the user sees
Confirmed · 3 deep
Reorg detected
Rolled back · pending
Re-included · confirming

You see the outcome before you approve it.

The biggest way people lose money on-chain is signing something they didn't understand. So we dry-run every transaction and render the result as a plain confirmation, exactly what leaves, what returns, and which approvals are asked for.

Confirm transactionsimulated
You send0.1 ETH
To0x3a…c7d2
Balance after2.3108 ETH
Network fee≈ $1.42
Token approvalsnone requested
RejectConfirm
simulate.ts
1// dry-run the call before the wallet ever pops
2const sim = await client.simulateContract({
3 address: token, abi, functionName: "transfer",
4 args: [to, parseEther("0.1")], account,
5});
6
7sim.result // decoded return
8sim.request // the exact call to be signed
9sim.gasEstimate // 21,000
Every field in the modal on the left is decoded from this dry run, not guessed from the calldata.

Every wallet, every chain, one integration.

Your users don't all hold the same wallet or live on the same chain. Pick a connector and see its flow. We wire them once, behind one interface.

WalletConnect · connect flow
  1. 1build URI
  2. 2show QR / deep-link
  3. 3approve on phone
  4. 4session live✓ ready
chains, out of the box
EthereumBaseArbitrumOptimismPolygonSolana

A dApp front-end that tells the truth about the chain.

Transactions simulated before you sign, state tracked to real confirmations, reorg-safe, and every wallet wired once behind one interface.