Skip to content

Wallet (Phase 2)

Status: planned (Phase 2). API documented ahead of implementation.

Connector-agnostic native-Hedera signing over WalletConnect. The dApp builds a transaction with the Hedera SDK; the wallet signs and executes; hbar-kit confirms via Mirror Node.

ts
import { createWalletClient, dAppConnector } from "@hbar-kit/wallet"
import { verifyHbarPayment } from "@hbar-kit/payments"

const wallet = createWalletClient({
  chain: "hedera:testnet",
  projectId: process.env.REOWN_PROJECT_ID!,
  metadata: { name: "Shop", description: "Demo", url: "https://shop.test", icons: [] },
})

const { transactionId } = await wallet.transfer({
  to: "0.0.12345",
  amount: 100_000_000n,
  memo: "order-42",
})
const result = await verifyHbarPayment({
  network: "testnet",
  receiver: "0.0.12345",
  amount: "1",
  memo: "order-42",
})

Why confirm separately? Wallets disagree on whether execution waits for a receipt, so the returned transactionId is the source of truth and confirmation always goes through Mirror Node.