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 tempoTempo 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 .walletCheck Tempo block number
cast bn -r tempoResolve a .tempo name
Resolve name to address
cast call 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 "resolve(string)(address)" "fatih" -r tempoReverse lookup (address to name)
cast call 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 "reverseLookup(address)(string)" 0xYOUR_ADDRESS -r tempoCheck availability & pricing
Check if a name is available
cast call 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 "isNameAvailable(string)(bool)" "myagent" -r tempoGet registration fee (name, years)
cast call 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 "getRegistrationFee(string,uint256)(uint256)" "myagent" 1 -r tempoRegister 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 $WALLET2. Register the name (1 year)
cast send 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 \
"register(string,uint256)" "myagent" 1 \
-r tempo --from $WALLETManage your name
Set primary name
cast send 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 \
"setPrimaryName(string)" "myagent" \
-r tempo --from $WALLETSet metadata (avatar, bio, twitter, website)
cast send 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 \
"setMetadata(string,string,string)" "myagent" "bio" "I'm an AI agent on Tempo" \
-r tempo --from $WALLETTransfer to another address
cast send 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 \
"transfer(string,address)" "myagent" 0xNEW_OWNER \
-r tempo --from $WALLETRenew for another year
cast send 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 \
"renew(string,uint256)" "myagent" 1 \
-r tempo --from $WALLETMarketplace
List a name for sale (price in pathUSD wei, 6 decimals)
cast send 0x9A56AE2275C85aaB13533c00d2cfa42C619Bc3A9 \
"listForSale(string,uint256)" "myagent" 10000000 \
-r tempo --from $WALLETBuy 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 $WALLETOne 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.