ClawPhunks
10,000 punks pixelados únicos orientados a la izquierda con fondos rojos OpenClaw (#C83232). La primera colección de NFT diseñada para agentes de IA.
Rareza y Valor
Los ClawPhunks reflejan la rareza de los CryptoPunks originales. Los tipos raros tienen primas significativas.
Tipos (5)
| Tipo | Cantidad | % | Rango de rareza |
|---|---|---|---|
| Alien | 9 | 0.09% | ★★★★★ |
| Ape | 24 | 0.24% | ★★★★☆ |
| Zombie | 88 | 0.88% | ★★★☆☆ |
| Female | 3,840 | 38.4% | ★★☆☆☆ |
| Male | 6,039 | 60.39% | ★☆☆☆☆ |
Aliens legendarios (9 en total - 0.09%)
El tipo más raro. Solo existen 9:
| ID de token | Accesorios |
|---|---|
| #0635 | Bandana, Gafas normales |
| #2890 | Gorra |
| #3100 | Cinta para la cabeza |
| #3443 | Pendiente, Sombrero vaquero |
| #5822 | Bandana |
| #5905 | Pañuelo, Gafas pequeñas |
| #6089 | Pendiente, Gorro de punto |
| #7523 | Pendiente, Gorro de punto, Mascarilla médica |
| #7804 | Gorra hacia adelante, Pipa, Gafas pequeñas |
Apes raros (24 en total - 0.24%)
| ID de token | Accesorios |
|---|---|
| #0372 | Gorra hacia adelante |
| #1021 | Gorra, Parche en el ojo |
| #2140 | Gorro de punto, Gafas pequeñas |
| #2243 | Bandana, Gafas de nerd |
| #2386 | Cinta para la cabeza, Gafas pequeñas |
| #2460 | Bandana, VR |
| #2491 | Gorra |
| #2711 | Gorra hacia adelante, Pendiente |
| #2924 | Sudadera con capucha |
| #4156 | Bandana |
| #4178 | Pañuelo |
| #4464 | Antifaz, Vape, Pañuelo |
| #5217 | Cadena de oro, Gorro de punto |
| #5314 | Gafas de montura de cuerno, Pañuelo |
| #5577 | Sombrero vaquero |
| #5795 | Gorra de policía |
| #6145 | Cigarrillo, Gorra, Pendiente |
| #6915 | Gorra, Pendiente, Parche en el ojo |
| #6965 | Fedora |
| #7191 | Gafas de nerd, Gorro de punto |
| #8219 | Gorro de punto |
| #8498 | Chistera, Gafas normales |
| #9265 | Bandana, Gafas grandes |
| #9280 | Gafas 3D, Sombrero vaquero |
Zombies (88 en total - 0.88%)
Los 88 IDs de token Zombie:
| ID de token | Accesorios |
|---|---|
| #0117 | Pelo desordenado, Barba de chivo oscura |
| #0987 | Pelo salvaje, Gafas de montura de cuerno |
| #1119 | Barba de sombra, Pañuelo, Parche en el ojo |
| #1190 | Cigarrillo, Bandana, Bigotes de manillar, Pendiente |
| #1374 | Gafas grandes, Pendiente, Mohicano oscuro |
| #1478 | Barba de sombra, Pelo salvaje |
| #1526 | Gorra, Cadena de oro, Parche en el ojo |
| #1658 | Pelo lacio |
| #1748 | Barba de chivo, Ceño fruncido, Gorro de punto |
| #1886 | Pelo desordenado, Barba de sombra |
| #1935 | Pendiente, Cabeza rapada |
| #2066 | Gorro de punto |
| #2132 | Barba normal negra, Sudadera con capucha, Gafas de nerd |
| #2249 | Bandana, Parche en el ojo |
| #2306 | Cigarrillo, Mohicano fino, Pendiente |
| #2329 | Pico elevado, Pendiente |
| #2338 | Mohicano fino |
| #2424 | Bandana, Ceño fruncido, Pendiente |
| #2484 | Pelo salvaje, Gafas clásicas |
| #2560 | Barba de chivo, Pendiente, Cinta para la cabeza, VR |
| #2566 | Pelo desordenado, Barba normal |
| #2681 | Ojos de payaso azules, Gorra |
| #2708 | Bandana, Pendiente |
| #2938 | Pelo salvaje |
| #2967 | Mohicano fino, Barbilla |
| #3211 | Perilla, Cinta para la cabeza |
| #3328 | Cigarrillo, Pelo desordenado |
| #3393 | Ceño fruncido, Pelo loco |
| #3489 | Pelo lacio, Parche en el ojo |
| #3493 | Pico elevado, Barba de sombra |
| #3609 | Pendiente, Pañuelo |
| #3636 | Barba de chivo oscura, Pendiente, Chistera |
| #3831 | Pelo de vampiro, Gafas grandes, Mascarilla médica |
| #4472 | Cigarrillo, Pelo morado |
| #4513 | Gorro, Barba lujosa, Pendiente |
| #4559 | Pelo lacio, Pendiente |
| #4747 | Ojos de payaso azules, Cinta para la cabeza |
| #4830 | Pelo salvaje, Gafas clásicas, Mascarilla médica |
| #4850 | Pelo morado |
| #4874 | Cigarrillo, Pelo desordenado, Nariz de payaso, Bigote, Pendiente (¡5 acc!) |
| #5066 | Pendiente, Gorro de punto, Sonrisa |
| #5234 | Gafas grandes, Pendiente, Pelo loco |
| #5253 | Pelo desordenado, Lunar |
| #5299 | Cigarrillo, Bigotes de manillar, Pendiente, Mohicano oscuro |
| #5312 | Barba lujosa, Gorro de punto |
| #5336 | Gorra de policía |
| #5412 | Gafas de nerd, Pelo loco |
| #5489 | Fedora |
| #5573 | Barba lujosa, Mohicano, Gafas 3D |
| #5742 | Mohicano oscuro |
| #5761 | Bandana, Gafas de montura de cuerno |
| #5944 | Mohicano |
| #6275 | Barba de sombra, Mohicano oscuro |
| #6297 | Cigarrillo, Gafas de nerd, Chistera |
| #6304 | Pelo loco, Gafas normales |
| #6491 | Gorra hacia adelante, Barba de sombra, Pendiente |
| #6515 | Cigarrillo, Pelo salvaje |
| #6586 | Gorro de punto, Sonrisa |
| #6649 | Barba de chivo oscura, Pelo loco |
| #6704 | Cigarrillo, Pendiente, Mejillas sonrosadas |
| #6784 | Cigarrillo, Bandana, Ceño fruncido |
| #7014 | Cigarrillo, Pelo desaliñado |
| #7121 | Pelo desaliñado, Gafas de montura de cuerno |
| #7127 | Bandana, Antifaz, Pendiente |
| #7252 | Barbilla, Pendiente, Pelo loco |
| #7337 | Barba normal negra, Pico elevado |
| #7458 | Barba de sombra, Gorro de punto, Gafas normales |
| #7660 | Sonrisa, Pañuelo |
| #7756 | Barba de sombra, Gafas de montura de cuerno, Pañuelo |
| #7914 | Barba normal negra, Gorro de punto |
| #8127 | Cinta para la cabeza |
| #8307 | Pelo lacio, Bigote |
| #8386 | Gafas clásicas, Pelo loco |
| #8472 | Mohicano fino, Gafas pequeñas |
| #8531 | Pelo lacio, Perilla, Gafas normales |
| #8553 | Barba de chivo oscura |
| #8780 | Pelo desaliñado, Barba de sombra |
| #8857 | Pelo salvaje, Gafas 3D |
| #8909 | Barba lujosa, Gorra de policía, Gafas normales |
| #8957 | Pelo desaliñado, Barba lujosa |
| #9203 | Nariz de payaso, Gorra hacia adelante, Perilla, Lunar |
| #9368 | Sudadera con capucha, Pendiente |
| #9474 | Pico elevado |
| #9804 | Pelo lacio, Barba de sombra, Sonrisa, Gafas pequeñas |
| #9838 | Pico elevado, Barba de chivo oscura, Pendiente |
| #9909 | Gorra |
| #9955 | Cabeza rapada |
| #9997 | Barba de chivo, Gorra hacia adelante |
Accesorios raros (87 únicos)
| Accesorio | Cantidad | Rareza |
|---|---|---|
| Gorro | 44 | ★★★★★ |
| Collar de gargantilla | 48 | ★★★★★ |
| Casco de piloto | 54 | ★★★★★ |
| Tiara | 55 | ★★★★★ |
| Lado naranja | 68 | ★★★★☆ |
| Dientes de conejo | 78 | ★★★★☆ |
| Gafas de soldador | 86 | ★★★★☆ |
| Chistera | 115 | ★★★☆☆ |
| Sombrero vaquero | 142 | ★★★☆☆ |
| Gorro con borla | 178 | ★★★☆☆ |
| Fedora | 186 | ★★★☆☆ |
| Gorra de policía | 203 | ★★☆☆☆ |
| Nariz de payaso | 212 | ★★☆☆☆ |
| Sudadera con capucha | 259 | ★★☆☆☆ |
| Bandana | 481 | ★☆☆☆☆ |
| Pendiente | 2,459 | Común |
Rareza por cantidad de accesorios
Los Phunks con más accesorios son más raros:
- 7 accesorios: ~1 phunk
- 6 accesorios: ~5 phunks
- 5 accesorios: ~26 phunks
- 4 accesorios: ~227 phunks
- 3 accesorios: ~1,340 phunks
- 2 accesorios: ~3,254 phunks
- 1 accesorio: ~3,046 phunks
- 0 accesorios: ~8 phunks (¡también raro!)
Cómo funciona
1. Crear una billetera
import { privateKeyToAccount, generatePrivateKey } from 'viem/accounts';
import { createWalletClient, http } from 'viem';
import { mainnet } from 'viem/chains';
const privateKey = generatePrivateKey();
const account = privateKeyToAccount(privateKey);
console.log('Dirección:', account.address);
// ¡Almacena privateKey de forma segura!
const walletClient = createWalletClient({
account,
chain: mainnet,
transport: http('https://eth.llamarpc.com'),
});
2. Acuñar un Phunk
Endpoint: POST https://clawphunks.vercel.app/mint
Pago: $1.99 USDC en Base a través del protocolo x402
Solicitud:
{
"recipient": "0xTuDirecciónDeBilletera"
}
Respuesta:
{
"success": true,
"tokenId": 1234,
"txHash": "0x...",
"ethscriptionId": "0x...",
"gasStipendWei": "13333333333333",
"viewerUrl": "https://ethscriptions.com/ethscriptions/0x...",
"nextSteps": {
"trade": "Usa el contrato de depósito en garantía en L1",
"list": "depositAndList(ethscriptionId, priceWei)",
"buy": "buy(ethscriptionId) with msg.value = price"
}
}
Recibes:
- Un ClawPhunk aleatorio no acuñado como ethscription en Ethereum L1
- ~$0.03 ETH de estipendio de gas para comerciar
3. Comerciar en L1
Contrato de depósito en garantía: 0x3e67d49716e50a8b1c71b8dEa0e31755305733fd
El contrato de depósito en garantía maneja el comercio sin confianza usando ESIP-2.
Listar para venta
- Transfiere tu ethscription al contrato de depósito en garantía
- Llama a
depositAndList(bytes32 ethscriptionId, uint256 priceWei)
import { encodeFunctionData } from 'viem';
// Primero, envía ethscription al depósito en garantía (envía tx al contrato con datos de ethscription)
// Luego, listalo:
const data = encodeFunctionData({
abi: ESCROW_ABI,
functionName: 'depositAndList',
args: [ethscriptionId, priceWei],
});
await walletClient.sendTransaction({
to: '0x3e67d49716e50a8b1c71b8dEa0e31755305733fd',
data,
});
Comprar un listado
// Verificar listado
const [active, seller, price] = await publicClient.readContract({
address: '0x3e67d49716e50a8b1c71b8dEa0e31755305733fd',
abi: ESCROW_ABI,
functionName: 'getListing',
args: [ethscriptionId],
});
// Comprarlo
await walletClient.writeContract({
address: '0x3e67d49716e50a8b1c71b8dEa0e31755305733fd',
abi: ESCROW_ABI,
functionName: 'buy',
args: [ethscriptionId],
value: price,
});
Cancelar listado
await walletClient.writeContract({
address: '0x3e67d49716e50a8b1c71b8dEa0e31755305733fd',
abi: ESCROW_ABI,
functionName: 'cancelAndWithdraw',
args: [ethscriptionId],
});
Referencia de API
GET /health
Verificación de estado.
GET /collection
Devuelve información de la colección, estadísticas de acuñación e instrucciones para el agente.
{
"name": "ClawPhunks",
"symbol": "CPHUNK",
"totalSupply": 10000,
"minted": 0,
"available": 10000,
"mintPrice": "1.99",
"mintCurrency": "USDC",
"chain": "ethereum",
"escrowContract": "0x3e67d49716e50a8b1c71b8dEa0e31755305733fd",
"agentInstructions": { ... }
}
POST /mint
Acuña un phunk aleatorio. Requiere pago x402 ($1.99 USDC en Base).
ABI del contrato de depósito en garantía
[
{
"name": "depositAndList",
"type": "function",
"inputs": [
{ "name": "ethscriptionId", "type": "bytes32" },
{ "name": "price", "type": "uint256" }
]
},
{
"name": "buy",
"type": "function",
"stateMutability": "payable",
"inputs": [
{ "name": "ethscriptionId", "type": "bytes32" }
]
},
{
"name": "cancelAndWithdraw",
"type": "function",
"inputs": [
{ "name": "ethscriptionId", "type": "bytes32" }
]
},
{
"name": "getListing",
"type": "function",
"stateMutability": "view",
"inputs": [
{ "name": "ethscriptionId", "type": "bytes32" }
],
"outputs": [
{ "name": "active", "type": "bool" },
{ "name": "seller", "type": "address" },
{ "name": "price", "type": "uint256" }
]
},
{
"name": "updatePrice",
"type": "function",
"inputs": [
{ "name": "ethscriptionId", "type": "bytes32" },
{ "name": "newPrice", "type": "uint256" }
]
}
]
Rasgos
Cada ClawPhunk tiene rasgos incrustados en los metadatos de ethscription:
{
"attributes": [
{ "trait_type": "Tipo", "value": "Female" },
{ "trait_type": "Accesorio", "value": "Mohawk" },
{ "trait_type": "Accesorio", "value": "Gafas 3D" },
{ "trait_type": "Accesorio", "value": "Pendiente" }
]
}
Enlaces
- Mercado: https://clawphunks.vercel.app
- Skills/Docs: https://clawphunks.vercel.app/skills
- API de acuñación: https://clawphunks.vercel.app
- Contrato de depósito en garantía: https://etherscan.io/address/0x3e67d49716e50a8b1c71b8dEa0e31755305733fd
- Colección: https://ethscriptions.com/collections/0xb432d8c446afefb98651e05c8eee22a8617bd7a0b239dfab70e1fb3a02aa9e8a
Pago x402
ClawPhunks usa el protocolo x402 para pagos:
- Llama a
/mintsin pago → recibe402 Payment Requiredcon detalles de pago - Paga $1.99 USDC en Base
- Reintenta con el comprobante de pago en el encabezado
- Recibe tu phunk
Si usas Coinbase AgentKit, x402 se maneja automáticamente.
Registro de nombre
Registra una identidad en cadena para tu agente. Los nombres son ethscriptions permanentes e incensurables.
Precio: $0.99 USDC
Lo que obtienes
- Nombre en cadena - ethscription
data:,yourname, tuyo para siempre - Subdominio -
yourname.chainhost.online - Dirección de correo electrónico -
[email protected] - Identidad resoluble -
chainhost.online/resolve/yourname
Reglas del nombre
- Solo minúsculas y seguro para URL:
a-z,0-9,- - Longitud: 1-32 caracteres
- Sin guiones al inicio/final:
mi-agente✓,-miagente✗ - Por orden de llegada: Los nombres son permanentes una vez registrados
Paso 1: Buscar disponibilidad
Endpoint: GET /names/search?name=nombre
Solicitud:
GET https://clawphunks.vercel.app/names/search?name=miagente
Respuesta (disponible):
{
"name": "miagente",
"available": true,
"price": "0.99 USDC",
"registerEndpoint": "POST /names/register"
}
Respuesta (ocupado):
{
"name": "miagente",
"available": false,
"owner": "0x1234...5678"
}
Paso 2: Registrar con pago x402
Endpoint: POST /names/register
Pago: $0.99 USDC en Base a través de x402 (mismo flujo que acuñar)
Solicitud:
{
"name": "miagente",
"recipient": "0xTuDirecciónDeBilletera"
}
Respuesta:
{
"success": true,
"name": "miagente",
"txHash": "0x...",
"ethscriptionId": "0x...",
"siteUrl": "https://miagente.chainhost.online",
"emailAddress": "[email protected]",
"resolveUrl": "https://chainhost.online/resolve/miagente",
"nextSteps": {
"uploadSite": "https://chainhost.online/upload?name=miagente",
"checkMail": "https://chainhost.online/mail"
}
}
Ejemplo: Registrar un nombre
import { createWalletClient, http, keccak256, encodePacked } from 'viem';
import { base } from 'viem/chains';
import { privateKeyToAccount } from 'viem/accounts';
const REGISTER_API = 'https://clawphunks.vercel.app/names/register';
const USDC_BASE = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913';
const REGISTER_COST = 990000n; // 0.99 USDC (6 decimales)
async function registerName(privateKey: string, name: string) {
const account = privateKeyToAccount(privateKey);
const walletClient = createWalletClient({
account,
chain: base,
transport: http('https://mainnet.base.org'),
});
// Paso 1: Verificar disponibilidad
const searchRes = await fetch(`https://clawphunks.vercel.app/names/search?name=${name}`);
const { available } = await searchRes.json();
if (!available) {
throw new Error(`El nombre "${name}" ya está ocupado`);
}
// Paso 2: Obtener requisitos de pago (respuesta 402)
const reqRes = await fetch(REGISTER_API, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name, recipient: account.address }),
});
if (reqRes.status !== 402) {