---
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)" <account> --rpc-url https://sepolia.base.org
```

### allowance

```bash
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.

```bash
# 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:

```bash
CALLDATA=$(cast calldata "deposit()")
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --data $CALLDATA --value <wei-amount>
```

**Verify:** Check your WETH balance after wrapping:

```bash
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.

```bash
CALLDATA=$(cast calldata "withdraw(uint256)" <wad>)
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --data $CALLDATA
```

**Verify:** Check your WETH balance decreased:

```bash
cast call 0x4200000000000000000000000000000000000006 "balanceOf(address)(uint256)" <your-address> --rpc-url https://sepolia.base.org
```

### approve

Approve a spender to transfer WETH on your behalf.

```bash
CALLDATA=$(cast calldata "approve(address,uint256)" <spender> <wad>)
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --data $CALLDATA
```

**Verify:**

```bash
cast call 0x4200000000000000000000000000000000000006 "allowance(address,address)(uint256)" <your-address> <spender> --rpc-url https://sepolia.base.org
```

### transfer

Transfer WETH to another address.

```bash
CALLDATA=$(cast calldata "transfer(address,uint256)" <recipient> <wad>)
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --data $CALLDATA
```

**Verify:**

```bash
cast call 0x4200000000000000000000000000000000000006 "balanceOf(address)(uint256)" <recipient> --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)" <src> <dst> <wad>)
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --data $CALLDATA
```

**Verify:**

```bash
cast call 0x4200000000000000000000000000000000000006 "balanceOf(address)(uint256)" <dst> --rpc-url https://sepolia.base.org
```

---

## Common Patterns

### Wrap ETH (deposit)

```bash
# Wrap 0.01 ETH into WETH
keypo-wallet send --key <key-name> --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 <key-name> --to 0x4200000000000000000000000000000000000006 --data $CALLDATA
```

### Approve + TransferFrom (batched)

```bash
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:

```bash
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --value 1000000000000000000
```

To transfer 1.0 WETH:

```bash
CALLDATA=$(cast calldata "transfer(address,uint256)" <recipient> 1000000000000000000)
keypo-wallet send --key <key-name> --to 0x4200000000000000000000000000000000000006 --data $CALLDATA
```
