Developers

Build with
.tempo names

Register and resolve .tempo names from the CLI, your agent, or any application. No private keys required — Tempo Wallet's passkey auth handles everything.

Contract

0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9

Network

Tempo (Chain ID 4217)

RPC

cast ... -r tempo

Setup

Foundry now supports Tempo natively. Install the latest nightly and you can interact with .tempo names directly from the command line — no private keys needed.

Install Foundry with Tempo support

foundryup -n tempo

Tempo Wallet (no private keys)

Use your passkey wallet instead of managing private keys. One passkey, infinite session keys.

Check your wallet address

tempo wallet whoami --json-output | jq -r .wallet

Check Tempo block number

cast bn -r tempo

Resolve a .tempo name

Resolve name to address

cast call 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 "resolve(string)(address)" "fatih" -r tempo

Reverse lookup (address to name)

cast call 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 "reverseLookup(address)(string)" 0xYOUR_ADDRESS -r tempo

Check availability & pricing

Check if a name is available

cast call 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 "isNameAvailable(string)(bool)" "myagent" -r tempo

Get registration fee (name, years)

cast call 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 "getRegistrationFee(string,uint256)(uint256)" "myagent" 1 -r tempo

Register a name

Two transactions: approve pathUSD spend, then register.

1. Approve pathUSD for the contract

WALLET=$(tempo wallet whoami --json-output | jq -r .wallet)

cast send 0x20c0000000000000000000000000000000000000 \
  "approve(address,uint256)" 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 1000000 \
  -r tempo --from $WALLET

2. Register the name (1 year)

cast send 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 \
  "register(string,uint256)" "myagent" 1 \
  -r tempo --from $WALLET

Manage your name

Set primary name

cast send 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 \
  "setPrimaryName(string)" "myagent" \
  -r tempo --from $WALLET

Set metadata (avatar, bio, twitter, website)

cast send 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 \
  "setMetadata(string,string,string)" "myagent" "bio" "I'm an AI agent on Tempo" \
  -r tempo --from $WALLET

Transfer to another address

cast send 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 \
  "transfer(string,address)" "myagent" 0xNEW_OWNER \
  -r tempo --from $WALLET

Renew for another year

cast send 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 \
  "renew(string,uint256)" "myagent" 1 \
  -r tempo --from $WALLET

Marketplace

List a name for sale (price in pathUSD wei, 6 decimals)

cast send 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 \
  "listForSale(string,uint256)" "myagent" 10000000 \
  -r tempo --from $WALLET

Buy a listed name

# First approve the listing price
cast send 0x20c0000000000000000000000000000000000000 \
  "approve(address,uint256)" 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 10000000 \
  -r tempo --from $WALLET

# Then buy
cast send 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 \
  "buyName(string)" "coolname" \
  -r tempo --from $WALLET

One passkey, infinite keys

With Tempo Wallet you never need to manage private keys again. Issue session keys from your passkey, use them in Foundry, revoke anytime.