weth-base-sepolia
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
cast call 0x4200000000000000000000000000000000000006 "name()(string)" --rpc-url https://sepolia.base.org
symbol
cast call 0x4200000000000000000000000000000000000006 "symbol()(string)" --rpc-url https://sepolia.base.org
decimals
cast call 0x4200000000000000000000000000000000000006 "decimals()(uint8)" --rpc-url https://sepolia.base.org
totalSupply
cast call 0x4200000000000000000000000000000000000006 "totalSupply()(uint256)" --rpc-url https://sepolia.base.org
balanceOf
cast call 0x4200000000000000000000000000000000000006 "balanceOf(address)(uint256)" <account> --rpc-url https://sepolia.base.org
allowance
cast call 0x4200000000000000000000000000000000000006 "allowance(address,address)(uint256)" <owner> <spender> --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.
# This function is payable — specify the ETH amount to wrap in --value (wei)
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --value <wei-amount>
No calldata needed — calling the contract with ETH triggers the fallback/deposit. To use the explicit deposit() function:
CALLDATA=$(cast calldata "deposit()")
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --data $CALLDATA --value <wei-amount>
Verify: Check your WETH balance after wrapping:
cast call 0x4200000000000000000000000000000000000006 "balanceOf(address)(uint256)" <your-address> --rpc-url https://sepolia.base.org
withdraw
Unwrap WETH back into native ETH. Burns WETH and returns ETH to your wallet.
CALLDATA=$(cast calldata "withdraw(uint256)" <wad>)
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --data $CALLDATA
Verify: Check your WETH balance decreased:
cast call 0x4200000000000000000000000000000000000006 "balanceOf(address)(uint256)" <your-address> --rpc-url https://sepolia.base.org
approve
Approve a spender to transfer WETH on your behalf.
CALLDATA=$(cast calldata "approve(address,uint256)" <spender> <wad>)
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --data $CALLDATA
Verify:
cast call 0x4200000000000000000000000000000000000006 "allowance(address,address)(uint256)" <your-address> <spender> --rpc-url https://sepolia.base.org
transfer
Transfer WETH to another address.
CALLDATA=$(cast calldata "transfer(address,uint256)" <recipient> <wad>)
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --data $CALLDATA
Verify:
cast call 0x4200000000000000000000000000000000000006 "balanceOf(address)(uint256)" <recipient> --rpc-url https://sepolia.base.org
transferFrom
Transfer WETH from one address to another (requires prior approval).
CALLDATA=$(cast calldata "transferFrom(address,address,uint256)" <src> <dst> <wad>)
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --data $CALLDATA
Verify:
cast call 0x4200000000000000000000000000000000000006 "balanceOf(address)(uint256)" <dst> --rpc-url https://sepolia.base.org
Common Patterns
Wrap ETH (deposit)
# Wrap 0.01 ETH into WETH
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --value 10000000000000000
Unwrap WETH (withdraw)
# Unwrap 0.01 WETH back to ETH
CALLDATA=$(cast calldata "withdraw(uint256)" 10000000000000000)
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --data $CALLDATA
Approve + TransferFrom (batched)
APPROVE_DATA=$(cast calldata "approve(address,uint256)" <spender> <wad>)
TRANSFER_DATA=$(cast calldata "transferFrom(address,address,uint256)" <your-address> <recipient> <wad>)
echo "[
{\"to\": \"0x4200000000000000000000000000000000000006\", \"value\": \"0\", \"data\": \"$APPROVE_DATA\"},
{\"to\": \"0x4200000000000000000000000000000000000006\", \"value\": \"0\", \"data\": \"$TRANSFER_DATA\"}
]" | keypo-wallet batch --key <key-name> --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:
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --value 1000000000000000000
To transfer 1.0 WETH:
CALLDATA=$(cast calldata "transfer(address,uint256)" <recipient> 1000000000000000000)
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --data $CALLDATA