Skip to main content
The GOAT & Metis Agent identity gives your agent an on-chain wallet, an ERC-8004 on-chain identity, and x402 payments on GOAT Network — by bundling three skills that auto-install when the agent is created.

Add the skills to your agent

Open your agent, click Install Identity, and choose GOAT & Metis Agent — its three skills install onto that agent. (You install a curated identity, not individual skills.)
SkillWhat it adds
Privy Walletcreate & manage a policy-guarded on-chain server wallet
ERC-8004 Registrationregister the agent’s on-chain identity + reputation
x402 Merchantaccept x402 payments — receiving addresses, API keys, orders
You don’t set the identity up yourself — a node admin provisions it once (see Admin: provisioning at the bottom). The rest of this guide covers what the agent can then do.

How the install works

These are external-source slugs, installed without a ClawHub registry:
  • github.com/owner/repo[/subpath]npx degit downloads the repo (or just the .claude/skills/<name> subdirectory) as a tarball into ~/.openclaw/workspace/skills/<name>.
  • https://host/path/skill.md → the runtime fetches the single SKILL.md and writes it under a folder named after its name: frontmatter (e.g. Privy’s https://agents.privy.io/skill.mdskills/privy-agent-onboarding/).
No git binary is required (uses npx/node, already present). Registry slugs (no github.com/ or https:// prefix) still go through clawhub install / hermes skills install as before.

Credentials (required to transact — Phase 2)

Skills install with no credentials. The agent only signs/calls once these are present in the runtime’s openclaw.jsonenv.vars:
VarUsed byPurpose
PRIVY_APP_ID, PRIVY_APP_SECRETPrivy skillcreate / manage the wallet
GOAT_PRIVATE_KEY (or the Privy wallet — see “Signer”)erc8004, x402sign on-chain transactions
GOAT_NETWORKerc8004, x402goat-testnet3 (default) or goat-mainnet
GOAT_RPC_URLerc8004, x402RPC endpoint (defaults below)
ClawUp injects the model key + channel tokens into runtimes today, but there is no path yet to inject these custom vars — that’s the Phase-2 work (a managed wallet provisioner, or a bring-your-own-creds field). Until then, set them by editing the runtime’s openclaw.json directly.

Signer: who holds the key?

Privy custodies the wallet key, but the GOAT skills sign with a raw GOAT_PRIVATE_KEY (cast / node src/contract.js). Pick one:
  • (A) Privy is the single wallet — erc8004/x402 signing routes through Privy’s signing API. Best custody/policy; needs a small adapter so the GOAT skills sign via Privy instead of a raw key.
  • (B) Separate raw key — give the GOAT skills their own GOAT_PRIVATE_KEY; Privy is a second wallet. Simplest; two wallets.

Using the identity: wallet → ERC-8004 → x402

The skills are instructions the agent runs. Once the credentials above are in place, prompt the agent (chat) to perform each step, in order:
  1. Generate the walletPrivy skill. e.g. “set up my Privy wallet.” Runs the Privy CLI onboarding and provisions a server wallet.
  2. Fund it — testnet first: GOAT Testnet3 faucet 0x89e7dfd01a86e5393ce6d8A78c9aa6653Ee113A6. (The Privy skill can also fund.)
  3. Register the ERC-8004 identityerc8004-register skill. e.g. “register my agent identity with URI <agent_uri>.” Calls register(string) on the Identity Registry, signed by the wallet (~156k gas).
  4. Onboard as an x402 merchantx402-merchant-onboard skill. e.g. “onboard me as an x402 merchant.” Sequence: register merchant → admin approval + fee-balance top-up → login → configure receiving address per token → generate API keys (HMAC-SHA256).

Walkthrough: provision the Privy wallet from chat

Step 1 above — “Generate the wallet” — end to end. The Privy skill (agents.privy.io/skill.md, from Privy’s agent-CLI recipe) runs entirely through chat. The screenshots below use Telegram.
Use any LLM model you like. The setup is model-agnostic — the agent reads the skill and runs the same steps regardless of which model drives it. The screenshots happen to use openrouter/openai/gpt-5.3-codex, but Claude, GPT-5.x, DeepSeek, or any tool-capable model works just as well. Pick it at create time under Model Usage — either Use your own API key (BYOK) or Use ClawUp-managed models (token credits).

1. Create the agent

Create an OpenClaw agent, choose your model under Model Usage, and pair a channel (Telegram here) if you want to drive it from your phone. Create agent — pick any model under Model Usage

2. Install the Privy skill

In chat, point the agent at the Privy skill:
Set up https://agents.privy.io/skill.md
The agent installs the skill, then replies with a device code and a login link (https://agents.privy.io?user_code=…), and waits for your approval in the background. Agent installs the Privy skill and returns a device code + login link

3. Log in & authorize

Open the link, log in to Privy, and Approve agent access — this grants the agent’s wallet CLI permission to sign and send transactions. Once you approve, the agent finishes setup and confirms the wallet addresses. Privy "Approve agent access" — sign + send transactions
Because this login is interactive (device code → browser approval), the Privy wallet works today with no PRIVY_APP_* env vars to inject — you authorize in the browser instead of editing openclaw.json.

4. Send a transaction

The agent can now transact in natural language. Fund the wallet first (a testnet faucet, or the Add funds button in the Privy sandbox), then:
Send 0.01 ETH to 0x234641C89538c7e9fc4539C12f0dd8E8D7c6b264 on Ethereum Sepolia
The agent submits through Privy’s RPC and returns the tx hash and chain. Agent submits the transaction and returns the tx hash With the wallet live, continue to ERC-8004 registration and x402 onboarding — steps 3–4 of Using the identity.

Network reference

Testnet3 (default)Mainnet
Chain ID488162345
RPChttps://rpc.testnet3.goat.networkhttps://rpc.goat.network
Explorerhttps://explorer.testnet3.goat.networkhttps://explorer.goat.network
ERC-8004 Identity Registry0x556089008Fc0a60cD09390Eca93477ca254A55220x8004A169FB4a3325136EB29fA0ceB6D2e539a432
ERC-8004 Reputation Registry0xd9140951d8aE6E5F625a02F5908535e16e3af9640x8004BAa17C55a88189AE136b182e5fdA19dE9b63
USDC0x29d1ee93e9ecf6e50f309f498e40a6b42d352fa10x3022b87ac063DE95b1570F46f5e470F8B53112D8
USDT0xdce0af57e8f2ce957b3838cd2a2f3f3677965dd30xE1AD845D93853fff44990aE0DcecD8575293681e
Network support by skill:
  • ERC-8004 — both testnet3 and mainnet (registries above).
  • x402 — both networks exist, but the hackathon skill defaults to testnet3:
    • Mainnet — production GoatX402 API https://api.x402.goat.network (multi-chain incl. GOAT mainnet 2345).
    • Testnet3 — per-instance https://x402-api-<instance>.testnet3.goat.network (portal https://x402-merchant-<instance>.testnet3.goat.network).
    • To run x402 on mainnet, set the skill’s base URL to https://api.x402.goat.network and chain 2345; otherwise the skill’s hardcoded testnet endpoints keep it on testnet3. See GOATNetwork/x402 (DEVELOPER_FAST.md, API.md). (ClawUp’s billing also uses api.x402.goat.network via X402_API_URL, but as ClawUp-the-merchant — separate from the agent.)
Start on testnet3; move to mainnet only after the wallet is funded and the user approves. Network config + ERC-8004 / x402 flows are sourced from GOATNetwork/GOAT-Hackathon-2026 and GOATNetwork/x402.

Further reading

Admin: provisioning

For node admins only — end users just attach the identity (above). The identity is data, created once in Settings → Identities → Create New Identity:
  • Slug goat-metis-agent · Name GOAT & Metis Agent
  • Description: Give your agent an on-chain wallet, an ERC-8004 identity, and x402 payments on GOAT Network (and Metis-compatible EVM chains via Privy).
  • Skills:
Skill slugName
https://agents.privy.io/skill.mdPrivy Wallet
github.com/GOATNetwork/GOAT-Hackathon-2026/.claude/skills/erc8004-registerERC-8004 Registration
github.com/GOATNetwork/GOAT-Hackathon-2026/.claude/skills/x402-merchant-onboardx402 Merchant