OpenParable
Skip to content
← Back to skills

weth-base-sepolia

Apps & Automation

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

View on GitHub ↗
QUICK START

How to use this skill

Bring this guide into your coding agent with a prompt tailored to the tool you use.

  1. Open your project in Codex.
  2. Copy and paste the prompt below.
  3. Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/keypo-us/keypo-cli/blob/HEAD/skills/contracts/weth-base-sepolia/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/weth-base-sepolia, but wait for my approval before writing files or running scripts.

Copying this prompt does not install or run the skill. Review third-party files before use.

Wrapped Ether — WETH (Base Sepolia)

FieldValue
Address0x4200000000000000000000000000000000000006
ChainBase Sepolia (Chain ID: 84532)
TypeToken (ERC-20 wrapper for native ETH)
Decimals18
SymbolWETH
RPChttps://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 AmountRaw Amount (wei)
1.01000000000000000000
0.1100000000000000000
0.0110000000000000000
0.0011000000000000000
100100000000000000000000

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