Lab session curriculum

Browser wallets, demystified across four chains.

A single lab that walks students through connecting, signing, and transacting with wallets on EVM, Solana, Bitcoin, and Dogecoin — then ends with deploying and testing their own staking contract on Base Sepolia.

EVM — Ethereum & L2s

evm

Ethereum, Base, Arbitrum, Optimism, Polygon, BNB…

MetaMaskRabbyCoinbase WalletTrust WalletWalletConnect
Keys
secp256k1 private key → keccak256(pubkey)[12:] → 20-byte address
Address
0x-prefixed 20-byte hex, EIP-55 checksummed
Signing
personal_sign, eth_signTypedData_v4 (EIP-712), eth_sendTransaction
Injected API
window.ethereum (EIP-1193). Discover via EIP-6963 for multi-wallet.
Lab session steps ↓
  1. Install MetaMask & create a fresh seed phrase. Discuss BIP-39 word entropy.
  2. Add the Base Sepolia network (chainId 84532, RPC https://sepolia.base.org).
  3. Fund the account from a Base Sepolia faucet.
  4. Sign a plain message vs an EIP-712 typed message — inspect the payloads.
  5. Send a native tx and read the receipt with a block explorer.
  6. Connect the wallet to a dApp via window.ethereum and read chainId + accounts.

Verify your connection

Checking for a wallet…

  1. Detect injected provider — not run
  2. Authorize accounts — not run
  3. Read chain / network — not run
  4. Sign a test message — not run

0/4 checks passed.

SVM — Solana

svm

Solana mainnet, devnet, testnet

PhantomSolflareBackpackGlow
Keys
ed25519 keypair — public key IS the address (32 bytes)
Address
Base58-encoded 32-byte public key (no prefix, ~44 chars)
Signing
signMessage, signTransaction, signAllTransactions (versioned tx v0)
Injected API
window.solana / Wallet Standard (window.navigator.wallets)
Lab session steps ↓
  1. Install Phantom, switch cluster to Devnet in settings.
  2. Airdrop SOL via `solana airdrop` or Phantom's faucet button.
  3. Compare an EVM 20-byte address to a Solana 32-byte base58 pubkey.
  4. Sign a message — note that Solana returns a raw ed25519 signature, not RSV.
  5. Send a SOL transfer and inspect the tx on Solana Explorer (devnet).
  6. Discuss rent, program-derived addresses, and account model vs. EVM state.

Verify your connection

Checking for a wallet…

  1. Detect Solana provider — not run
  2. Connect wallet — not run
  3. Read cluster endpoint — not run
  4. Sign a test message — not run

0/4 checks passed.

BTC — Bitcoin

btc

Bitcoin mainnet, testnet3, signet

XverseUnisatLeather (Hiro)OKX Wallet
Keys
secp256k1 → HASH160(pubkey) for legacy/segwit; x-only pubkey for taproot
Address
P2PKH (1…), P2SH (3…), Bech32 SegWit (bc1q…), Bech32m Taproot (bc1p…)
Signing
signMessage (BIP-322), signPsbt — PSBTs describe UTXO inputs/outputs
Injected API
window.unisat / window.XverseProviders / window.btc (per-wallet, no EIP-1193)
Lab session steps ↓
  1. Install Unisat or Xverse, switch to Bitcoin Testnet.
  2. Get tBTC from a signet/testnet faucet. Show the address types side-by-side.
  3. Explain UTXO model — no balances, just spent/unspent outputs.
  4. Sign a BIP-322 message and verify it off-chain.
  5. Craft a PSBT with 1-in-1-out and let the wallet sign & broadcast it.
  6. Bonus: mint an Ordinal inscription on signet and view it on ord.io.

Verify your connection

Checking for a wallet…

  1. Detect Bitcoin provider — not run
  2. Request accounts — not run
  3. Read network — not run
  4. Sign a BIP-322 message — not run

0/4 checks passed.

DOGE — Dogecoin

doge

Dogecoin mainnet & testnet (a Bitcoin fork)

MyDoge WalletCtrl (formerly XDEFI)OKX Wallet
Keys
secp256k1, same derivation as Bitcoin — different network params
Address
P2PKH starts with D…, P2SH starts with A…, testnet uses n… / 2…
Signing
signMessage, signPsbt — bitcoin-compatible tooling with Doge params
Injected API
window.doge / MyDoge SDK — no unified standard yet
Lab session steps ↓
  1. Install MyDoge Wallet extension, switch to testnet.
  2. Compare a Doge address (D…) with a BTC address — same crypto, different prefix byte.
  3. Get testnet Doge from a faucet, send between two student wallets.
  4. Broadcast a tx with an OP_RETURN memo and inspect on a Doge explorer.
  5. Discussion: why UTXO forks share tooling, and Dogecoin's inflation vs BTC's cap.

Verify your connection

Checking for a wallet…

  1. Detect Dogecoin provider — not run
  2. Connect wallet — not run
  3. Read network — not run
  4. Sign a test message — not run

0/4 checks passed.

Capstone lab

Deploy your own staking contract on Base Sepolia

Download SimpleStaking.sol, compile it in Remix or Hardhat, deploy to Base Sepolia, then paste your contract address into the Staking Lab to stake, view rewards, and unstake — right from your browser wallet.