--- name: weth-base-sepolia description: Interact with Wrapped Ether (WETH) at 0x4200000000000000000000000000000000000006 on Base Sepolia. Wrap and unwrap ETH, check balances, and manage ERC-20 WETH allowances. Use with keypo-wallet for transaction execution — use `cast calldata` to encode function calls and pipe to `keypo-wallet send` or `keypo-wallet batch`. license: MIT metadata: author: auto-generated by contract-learner version: "1.0.0" source-contract: "0x4200000000000000000000000000000000000006" chain: Base Sepolia chain-id: 84532 generated: "2026-03-06" --- # Wrapped Ether — WETH (Base Sepolia) | Field | Value | |-------|-------| | Address | `0x4200000000000000000000000000000000000006` | | Chain | Base Sepolia (Chain ID: 84532) | | Type | Token (ERC-20 wrapper for native ETH) | | Decimals | 18 | | Symbol | WETH | | RPC | `https://sepolia.base.org` | **Auto-generated from verified ABI.** Do not modify the address or function signatures. --- ## Read Functions Use `cast call` — no wallet needed, no gas cost. ### name ```bash cast call 0x4200000000000000000000000000000000000006 "name()(string)" --rpc-url https://sepolia.base.org ``` ### symbol ```bash cast call 0x4200000000000000000000000000000000000006 "symbol()(string)" --rpc-url https://sepolia.base.org ``` ### decimals ```bash cast call 0x4200000000000000000000000000000000000006 "decimals()(uint8)" --rpc-url https://sepolia.base.org ``` ### totalSupply ```bash cast call 0x4200000000000000000000000000000000000006 "totalSupply()(uint256)" --rpc-url https://sepolia.base.org ``` ### balanceOf ```bash cast call 0x4200000000000000000000000000000000000006 "balanceOf(address)(uint256)" --rpc-url https://sepolia.base.org ``` ### allowance ```bash cast call 0x4200000000000000000000000000000000000006 "allowance(address,address)(uint256)" --rpc-url https://sepolia.base.org ``` --- ## Write Functions Encode calldata with `cast calldata`, then execute via keypo-wallet. ### deposit Wrap ETH into WETH. Send ETH with the transaction and receive an equal amount of WETH. ```bash # This function is payable — specify the ETH amount to wrap in --value (wei) keypo-wallet send --key --to 0x4200000000000000000000000000000000000006 --value ``` No calldata needed — calling the contract with ETH triggers the fallback/deposit. To use the explicit `deposit()` function: ```bash CALLDATA=$(cast calldata "deposit()") keypo-wallet send --key --to 0x4200000000000000000000000000000000000006 --data $CALLDATA --value ``` **Verify:** Check your WETH balance after wrapping: ```bash cast call 0x4200000000000000000000000000000000000006 "balanceOf(address)(uint256)" --rpc-url https://sepolia.base.org ``` ### withdraw Unwrap WETH back into native ETH. Burns WETH and returns ETH to your wallet. ```bash CALLDATA=$(cast calldata "withdraw(uint256)" ) keypo-wallet send --key --to 0x4200000000000000000000000000000000000006 --data $CALLDATA ``` **Verify:** Check your WETH balance decreased: ```bash cast call 0x4200000000000000000000000000000000000006 "balanceOf(address)(uint256)" --rpc-url https://sepolia.base.org ``` ### approve Approve a spender to transfer WETH on your behalf. ```bash CALLDATA=$(cast calldata "approve(address,uint256)" ) keypo-wallet send --key --to 0x4200000000000000000000000000000000000006 --data $CALLDATA ``` **Verify:** ```bash cast call 0x4200000000000000000000000000000000000006 "allowance(address,address)(uint256)" --rpc-url https://sepolia.base.org ``` ### transfer Transfer WETH to another address. ```bash CALLDATA=$(cast calldata "transfer(address,uint256)" ) keypo-wallet send --key --to 0x4200000000000000000000000000000000000006 --data $CALLDATA ``` **Verify:** ```bash cast call 0x4200000000000000000000000000000000000006 "balanceOf(address)(uint256)" --rpc-url https://sepolia.base.org ``` ### transferFrom Transfer WETH from one address to another (requires prior approval). ```bash CALLDATA=$(cast calldata "transferFrom(address,address,uint256)" ) keypo-wallet send --key --to 0x4200000000000000000000000000000000000006 --data $CALLDATA ``` **Verify:** ```bash cast call 0x4200000000000000000000000000000000000006 "balanceOf(address)(uint256)" --rpc-url https://sepolia.base.org ``` --- ## Common Patterns ### Wrap ETH (deposit) ```bash # Wrap 0.01 ETH into WETH keypo-wallet send --key --to 0x4200000000000000000000000000000000000006 --value 10000000000000000 ``` ### Unwrap WETH (withdraw) ```bash # Unwrap 0.01 WETH back to ETH CALLDATA=$(cast calldata "withdraw(uint256)" 10000000000000000) keypo-wallet send --key --to 0x4200000000000000000000000000000000000006 --data $CALLDATA ``` ### Approve + TransferFrom (batched) ```bash APPROVE_DATA=$(cast calldata "approve(address,uint256)" ) TRANSFER_DATA=$(cast calldata "transferFrom(address,address,uint256)" ) echo "[ {\"to\": \"0x4200000000000000000000000000000000000006\", \"value\": \"0\", \"data\": \"$APPROVE_DATA\"}, {\"to\": \"0x4200000000000000000000000000000000000006\", \"value\": \"0\", \"data\": \"$TRANSFER_DATA\"} ]" | keypo-wallet batch --key --calls - ``` --- ## Amount Encoding This token uses **18 decimals**. Always convert human-readable amounts: | Human Amount | Raw Amount (wei) | |-------------|-----------------| | 1.0 | 1000000000000000000 | | 0.1 | 100000000000000000 | | 0.01 | 10000000000000000 | | 0.001 | 1000000000000000 | | 100 | 100000000000000000000 | To wrap 1.0 ETH into WETH: ```bash keypo-wallet send --key --to 0x4200000000000000000000000000000000000006 --value 1000000000000000000 ``` To transfer 1.0 WETH: ```bash CALLDATA=$(cast calldata "transfer(address,uint256)" 1000000000000000000) keypo-wallet send --key --to 0x4200000000000000000000000000000000000006 --data $CALLDATA ```