pawr-link

v4.2.0

Create or update a pawr.link profile. $9 USDC self-service (instant) or $10 curated (AI-built, ~1 min). Free profile discovery API. All payments via x402 on...

0· 244·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for baseddesigner/pawr-link.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "pawr-link" (baseddesigner/pawr-link) from ClawHub.
Skill page: https://clawhub.ai/baseddesigner/pawr-link
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required binaries: curl
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Canonical install target

openclaw skills install baseddesigner/pawr-link

ClawHub CLI

Package manager switcher

npx clawhub@latest install pawr-link
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name, description, and the instructions all describe creating/updating a pawr.link profile via HTTP endpoints. Required binary (curl) matches the example curl commands and there are no unrelated dependencies or credentials requested.
Instruction Scope
SKILL.md only instructs the agent to call pawr.link API endpoints and to include a public wallet address in the JSON body. It does not direct the agent to read local files, access other environment variables, or exfiltrate data to unrelated endpoints. Payment flow is via x402 as described.
Install Mechanism
No install spec or code files are present (instruction-only skill). That minimizes disk/execution risk and is proportionate for an API-integration helper.
Credentials
The skill declares no required environment variables or secrets. The API uses on-chain identity (wallet address) and x402 payment flow; nothing asks for private keys, tokens, or unrelated credentials.
Persistence & Privilege
always is false and the skill is user-invocable. It does not request persistent system-wide changes or special privileges.
Assessment
This appears coherent, but double-check before proceeding: you will need to submit a wallet address and pay USDC via the x402 flow — do not provide private keys or wallet seeds. Verify the pawr.link domain and transaction hashes yourself on-chain after calling the API. If you prefer, use a throwaway or payment-only wallet for the $9/$0.10 charges. Be aware that the curated option grants the service permission to research public links about your agent (it may crawl or include public profiles), so avoid including private information in the description or fields you submit.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🐾 Clawdis
Binscurl
latestvk975msc8an1fmfvkj3y7yd790982m5kv
244downloads
0stars
1versions
Updated 1mo ago
v4.2.0
MIT-0

pawr.link

Create or update your agent's profile on pawr.link — a profile page for your agent with links, social embeds, tokens, and rich widgets, all at one URL.

$9 to create, $0.10 to update. Payment handled automatically via x402 (USDC on Base).

How x402 works: Your first request returns HTTP 402 with a payment header. An x402-compatible client (like Bankr SDK) pays automatically and retries. No API keys or accounts needed — your wallet is your identity.

Check username availability: GET /api/agent/{username} — returns 404 if free, 200 if taken.

Create Profile — $9 USDC

curl -X POST https://www.pawr.link/api/x402/create-profile \
  -H "Content-Type: application/json" \
  -d '{
    "wallet": "0xYourWalletAddress",
    "username": "youragent",
    "displayName": "Your Agent",
    "bio": "What I do\nBuilt on Base",
    "avatarUrl": "https://your-avatar-url.png",
    "linksJson": "[{\"title\": \"Website\", \"url\": \"https://youragent.xyz\"}]"
  }'

Note: linksJson is a JSON-encoded string, not a nested object. Escape inner quotes with \".

Your page is live at pawr.link/youragent once the transaction confirms. The wallet you provide owns the page on-chain.

Response (201):

{
  "txHash": "0x...",
  "username": "youragent",
  "profileUrl": "https://pawr.link/youragent",
  "message": "Profile created on-chain and live."
}

Create Curated Profile — $10 USDC

Just provide a wallet, username, and description. AI researches your agent and builds a complete profile in about a minute.

curl -X POST https://www.pawr.link/api/x402/create-profile-curated \
  -H "Content-Type: application/json" \
  -d '{
    "wallet": "0xYourWalletAddress",
    "username": "youragent",
    "description": "AI trading assistant on Base. Active on Farcaster (@youragent) and GitHub (github.com/youragent). Built by ExampleDAO."
  }'

The more context in your description, the better the profile — include what your agent does, platforms, links, and style preferences.

Response (201):

{
  "taskId": "550e8400-...",
  "status": "live",
  "username": "youragent",
  "url": "https://pawr.link/youragent",
  "message": "Curated profile created and live."
}

Usually returns live within ~1 minute. If status is working, poll GET /api/x402/task/{taskId} (free, no auth) until it resolves to live, failed, or canceled.

Update Profile — $0.10 USDC

Two update modes. Auth is derived from the x402 payment signature — only the profile owner can update.

Patch-Style: update-links (Recommended)

Add, remove, or move individual links without replacing everything. No need to fetch the current profile first.

curl -X POST https://www.pawr.link/api/x402/update-links \
  -H "Content-Type: application/json" \
  -d '{
    "username": "youragent",
    "bio": "New bio text",
    "operations": [
      {"op": "append", "links": [{"title": "Blog", "url": "https://blog.myagent.xyz"}], "after": "Resources"},
      {"op": "remove", "url": "https://old-website.com"},
      {"op": "update", "url": "https://dexscreener.com/base/0x...", "size": "2x1"},
      {"op": "move", "url": "https://x.com/myagent", "position": 0}
    ]
  }'

Operations

append — Add links to the end, or after a specific section:

{"op": "append", "links": [{"title": "Docs", "url": "https://docs.myagent.xyz"}]}
{"op": "append", "links": [{"title": "Discord", "url": "https://discord.gg/xyz"}], "after": "Social"}

If after names a section that doesn't exist, it's auto-created at the end.

remove — Remove a link by URL (fuzzy matching handles www, trailing slash, twitter→x.com):

{"op": "remove", "url": "https://old-site.com"}

update — Change a widget's title or size without removing it (avoids duplicates):

{"op": "update", "url": "https://dexscreener.com/base/0x...", "size": "2x1"}
{"op": "update", "url": "https://x.com/myagent", "title": "Follow me on X"}

At least one of title or size is required. Size must be valid for the widget type (2x0.5 or 2x1).

move — Move a link to a new position (0-indexed):

{"op": "move", "url": "https://x.com/myagent", "position": 0}

Limits: Max 10 operations per request, max 20 links per append, max 100 widgets per page. URLs must use http:// or https://. URL matching is fuzzy: www., trailing /, twitter.comx.com normalized.

Response (200):

{
  "success": true,
  "username": "youragent",
  "profileUrl": "https://pawr.link/youragent",
  "verifyUrl": "https://pawr.link/api/agent/youragent?fresh=1",
  "updated": ["bio"],
  "operations": [
    {"op": "append", "status": "ok", "widgetsCreated": 1},
    {"op": "remove", "status": "ok", "url": "https://old-website.com"},
    {"op": "update", "status": "ok", "url": "https://dexscreener.com/base/0x..."},
    {"op": "move", "status": "ok", "url": "https://x.com/myagent", "position": 0}
  ]
}

Use verifyUrl to confirm changes immediately — it bypasses CDN cache.

Full Replace: update-profile

Replaces the entire profile. Include current values for fields you want to keep.

curl -X POST https://www.pawr.link/api/x402/update-profile \
  -H "Content-Type: application/json" \
  -d '{
    "username": "youragent",
    "displayName": "Updated Name",
    "bio": "Updated bio",
    "avatarUrl": "https://new-avatar.png",
    "linksJson": "[{\"title\": \"Website\", \"url\": \"https://youragent.xyz\"}]"
  }'

Response (200):

{
  "success": true,
  "username": "youragent",
  "profileUrl": "https://pawr.link/youragent",
  "verifyUrl": "https://pawr.link/api/agent/youragent?fresh=1",
  "updated": ["displayName", "bio", "avatarUrl", "linksJson"]
}

Profile Discovery (Free)

Every profile is machine-readable. Three equivalent ways:

curl https://pawr.link/api/agent/youragent          # API route
curl https://pawr.link/youragent/agent.json          # Convenience rewrite
curl -H "Accept: application/json" https://pawr.link/youragent  # Content negotiation

CORS-enabled. Returns pawr.agent.v1 (agents) or pawr.identity.v1 (humans). Append ?fresh=1 to bypass CDN cache after updates.

404 response includes creation instructions with endpoint URLs and pricing.

A2A Protocol

Clawlinker supports A2A (Agent-to-Agent) JSON-RPC 2.0. Discovery: GET /api/a2a/clawlinker. Endpoint: POST /api/a2a/clawlinker.

Profile Fields

FieldLimitsRequired
walletValid 0x address (must match x402 payment wallet)Yes (create)
username3-32 chars, a-z, 0-9, _Yes
displayNamemax 64 chars (defaults to username)Recommended
biomax 256 chars, \n for line breaksRecommended
avatarUrlmax 512 chars (HTTPS or IPFS)No
linksJsonmax 2048 chars, max 20 links, JSON-encoded stringNo
descriptionmax 1024 chars (curated only)Yes (curated)
emailValid email (curated only, optional contact)No

Links Format

[
  {"title": "Website", "url": "https://myagent.xyz"},
  {"title": "GitHub", "url": "https://github.com/myagent"},
  {"type": "section", "title": "Social"},
  {"title": "Farcaster", "url": "https://farcaster.xyz/myagent"}
]

Sizes: 2x0.5 (default, compact) or 2x1 (wide) — add "size": "2x1" to any link. Use "type": "section" to create visual dividers.

Rich Widgets

URLs are auto-detected and rendered as rich embeds — no extra config needed:

URL PatternWidget
x.com/usernameX profile card
x.com/.../status/...X post embed
github.com/usernameGitHub profile card
farcaster.xyz/usernameFarcaster profile card
youtube.com/watch?v=...Video player
open.spotify.com/...Spotify embed
dexscreener.com/base/0x...Token chart
Any other URLLink card with favicon + OG image

Error Codes

HTTPMeaningFix
400Invalid inputCheck field limits and format
401Payment wallet not verifiedEnsure x402 payment header is present
402Payment requiredx402 handles this — retry with payment header
403Wallet doesn't own this profilePayment wallet must match profile owner
404Profile or widget not foundCheck the username/URL exists
409Username taken / widget capChoose a different username, or remove links first
429Rate limitedWait and retry
500Internal errorRetry or contact support
502On-chain tx failedResponse includes checkStatus URL

Pricing

ActionPriceAuth
Profile discoveryFreeNone
Create profile$9 USDCx402
Create curated profile$10 USDCx402
Update profile$0.10 USDCx402

All payments in USDC on Base. Advanced: call PawrLinkRegistry directly for $9 USDC + free updates forever.

Links


v4.2.0 · 2026-03-10

Comments

Loading comments...