{
  "schemaVersion": "1.0",
  "item": {
    "slug": "clawpay-escrow",
    "name": "ClawPay Escrow",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/jakemeyer125-design/clawpay-escrow",
    "canonicalUrl": "https://clawhub.ai/jakemeyer125-design/clawpay-escrow",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/clawpay-escrow",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=clawpay-escrow",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/clawpay-escrow"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/clawpay-escrow",
    "agentPageUrl": "https://openagent3.xyz/skills/clawpay-escrow/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clawpay-escrow/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clawpay-escrow/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "ClawPay — Escrow Payments for AI Agents",
        "body": "You can send and receive trustless escrow payments on Solana using ClawPay. This skill handles the full payment lifecycle: locking funds, confirming delivery, releasing payments, and checking receipts."
      },
      {
        "title": "Setup",
        "body": "First, check if clawpay is installed:\n\npip3 show clawpay\n\nIf not installed:\n\npip3 install clawpay\n\nThe user's Solana wallet keypair is required. Check for it at the path in the SOLANA_KEYPAIR_PATH environment variable, or look for common locations:\n\n~/wallet.json\n~/.config/solana/id.json\n~/projects/clawpay/program-keypair.json\n\nIf no keypair is found, ask the user to provide one or generate one with solana-keygen new --outfile ~/wallet.json."
      },
      {
        "title": "How ClawPay Works",
        "body": "ClawPay is a time-locked escrow protocol on Solana. Every payment follows this flow:\n\nT0 — Lock: Buyer locks SOL into an escrow account\nT1 — Deliver: Seller must deliver before the deadline, or funds auto-refund to buyer\nT2 — Verify: Buyer confirms delivery, or funds auto-release to seller after the window\nSettle: 98% goes to seller, 1% to ClawPay, 1% to referrer (if any)\nReceipt: Cryptographic receipt minted on-chain for both parties\n\nNo trust required between agents. The timeline enforces everything."
      },
      {
        "title": "Pay Another Agent (Create Escrow)",
        "body": "When asked to pay an agent or buy a service:\n\nfrom clawpay import Client\nfrom solders.keypair import Keypair\nfrom solders.pubkey import Pubkey\n\nkeypair = Keypair.from_json(open(\"KEYPAIR_PATH\").read())\nclient = Client(keypair)\n\nescrow = client.create_escrow(\n    seller=Pubkey.from_string(\"SELLER_PUBKEY\"),\n    amount_sol=AMOUNT,\n    delivery_secs=DELIVERY_TIME,       # seconds until delivery deadline\n    verification_secs=VERIFICATION_TIME # seconds for dispute window (min 10)\n)\nprint(f\"Escrow created: {escrow.address}\")\nprint(f\"Amount: {escrow.amount_sol} SOL\")\nprint(f\"Delivery deadline: {escrow.t1}\")\nprint(f\"Verification ends: {escrow.t2}\")\n\nDefault values if not specified:\n\ndelivery_secs: 600 (10 minutes)\nverification_secs: 30 (30 seconds)\namount_sol: Ask the user — never assume an amount"
      },
      {
        "title": "Confirm Delivery (As Seller)",
        "body": "When you've completed a service and need to confirm delivery:\n\nfrom clawpay import Client\nfrom solders.keypair import Keypair\nfrom solders.pubkey import Pubkey\n\nkeypair = Keypair.from_json(open(\"KEYPAIR_PATH\").read())\nclient = Client(keypair)\n\nescrow_address = Pubkey.from_string(\"ESCROW_ADDRESS\")\nclient.confirm_delivery(escrow_address, keypair)\nprint(\"Delivery confirmed. Waiting for verification window.\")"
      },
      {
        "title": "Release Funds (After Verification)",
        "body": "After the verification window passes, anyone can trigger release:\n\nclient.auto_release(Pubkey.from_string(\"ESCROW_ADDRESS\"))\nprint(\"Funds released to seller.\")"
      },
      {
        "title": "Refund (Missed Delivery Deadline)",
        "body": "If the seller missed the delivery deadline:\n\nclient.auto_refund(Pubkey.from_string(\"ESCROW_ADDRESS\"))\nprint(\"Funds refunded to buyer.\")"
      },
      {
        "title": "Check Escrow Status",
        "body": "escrow = client.get_escrow(Pubkey.from_string(\"ESCROW_ADDRESS\"))\nprint(f\"Status: {escrow.status}\")\nprint(f\"Amount: {escrow.amount_sol} SOL\")\nprint(f\"Delivered: {escrow.delivered}\")\nprint(f\"Released: {escrow.released}\")"
      },
      {
        "title": "Check Agent Reputation (Receipts)",
        "body": "receipts = client.get_receipts(Pubkey.from_string(\"AGENT_PUBKEY\"))\nprint(f\"Total transactions: {len(receipts)}\")\nfor r in receipts:\n    outcome = [\"released\", \"refunded\", \"disputed\"][r.outcome]\n    print(f\"  #{r.receipt_index}: {r.amount_sol} SOL — {outcome}\")"
      },
      {
        "title": "Important Constraints",
        "body": "Minimum escrow: 0.05 SOL\nMaximum escrow: 10.0 SOL\nMinimum verification window: 10 seconds\nMaximum delivery time: 30 days\nFee: 2% on settlement (1% ClawPay + 1% referrer)\nNetwork: Solana Mainnet (default) or Devnet"
      },
      {
        "title": "Guardrails",
        "body": "NEVER create an escrow without confirming the amount with the user first\nNEVER send funds without verifying the seller's public key\nAlways display the escrow address after creation — the user needs it\nAlways check escrow status before attempting release or refund\nIf a keypair file is not found, ask the user — do not guess\nReport all errors clearly, especially insufficient balance errors\nWhen checking reputation, mention both successful and failed transactions for honesty"
      },
      {
        "title": "Verification",
        "body": "After any transaction, you can verify on Solana Explorer:\n\nProgram: https://explorer.solana.com/address/F2nwkN9i2kUDgjfLwHwz2zPBXDxLDFjzmmV4TXT6BWeD\nTransaction: https://explorer.solana.com/tx/TRANSACTION_SIGNATURE"
      },
      {
        "title": "Links",
        "body": "Website: https://claw-pay.com\nSDK: https://pypi.org/project/clawpay/\nGitHub: https://github.com/jakemeyer125-design/ClawPay-SDK"
      }
    ],
    "body": "ClawPay — Escrow Payments for AI Agents\n\nYou can send and receive trustless escrow payments on Solana using ClawPay. This skill handles the full payment lifecycle: locking funds, confirming delivery, releasing payments, and checking receipts.\n\nSetup\n\nFirst, check if clawpay is installed:\n\npip3 show clawpay\n\n\nIf not installed:\n\npip3 install clawpay\n\n\nThe user's Solana wallet keypair is required. Check for it at the path in the SOLANA_KEYPAIR_PATH environment variable, or look for common locations:\n\n~/wallet.json\n~/.config/solana/id.json\n~/projects/clawpay/program-keypair.json\n\nIf no keypair is found, ask the user to provide one or generate one with solana-keygen new --outfile ~/wallet.json.\n\nHow ClawPay Works\n\nClawPay is a time-locked escrow protocol on Solana. Every payment follows this flow:\n\nT0 — Lock: Buyer locks SOL into an escrow account\nT1 — Deliver: Seller must deliver before the deadline, or funds auto-refund to buyer\nT2 — Verify: Buyer confirms delivery, or funds auto-release to seller after the window\nSettle: 98% goes to seller, 1% to ClawPay, 1% to referrer (if any)\nReceipt: Cryptographic receipt minted on-chain for both parties\n\nNo trust required between agents. The timeline enforces everything.\n\nCore Operations\nPay Another Agent (Create Escrow)\n\nWhen asked to pay an agent or buy a service:\n\nfrom clawpay import Client\nfrom solders.keypair import Keypair\nfrom solders.pubkey import Pubkey\n\nkeypair = Keypair.from_json(open(\"KEYPAIR_PATH\").read())\nclient = Client(keypair)\n\nescrow = client.create_escrow(\n    seller=Pubkey.from_string(\"SELLER_PUBKEY\"),\n    amount_sol=AMOUNT,\n    delivery_secs=DELIVERY_TIME,       # seconds until delivery deadline\n    verification_secs=VERIFICATION_TIME # seconds for dispute window (min 10)\n)\nprint(f\"Escrow created: {escrow.address}\")\nprint(f\"Amount: {escrow.amount_sol} SOL\")\nprint(f\"Delivery deadline: {escrow.t1}\")\nprint(f\"Verification ends: {escrow.t2}\")\n\n\nDefault values if not specified:\n\ndelivery_secs: 600 (10 minutes)\nverification_secs: 30 (30 seconds)\namount_sol: Ask the user — never assume an amount\nConfirm Delivery (As Seller)\n\nWhen you've completed a service and need to confirm delivery:\n\nfrom clawpay import Client\nfrom solders.keypair import Keypair\nfrom solders.pubkey import Pubkey\n\nkeypair = Keypair.from_json(open(\"KEYPAIR_PATH\").read())\nclient = Client(keypair)\n\nescrow_address = Pubkey.from_string(\"ESCROW_ADDRESS\")\nclient.confirm_delivery(escrow_address, keypair)\nprint(\"Delivery confirmed. Waiting for verification window.\")\n\nRelease Funds (After Verification)\n\nAfter the verification window passes, anyone can trigger release:\n\nclient.auto_release(Pubkey.from_string(\"ESCROW_ADDRESS\"))\nprint(\"Funds released to seller.\")\n\nRefund (Missed Delivery Deadline)\n\nIf the seller missed the delivery deadline:\n\nclient.auto_refund(Pubkey.from_string(\"ESCROW_ADDRESS\"))\nprint(\"Funds refunded to buyer.\")\n\nCheck Escrow Status\nescrow = client.get_escrow(Pubkey.from_string(\"ESCROW_ADDRESS\"))\nprint(f\"Status: {escrow.status}\")\nprint(f\"Amount: {escrow.amount_sol} SOL\")\nprint(f\"Delivered: {escrow.delivered}\")\nprint(f\"Released: {escrow.released}\")\n\nCheck Agent Reputation (Receipts)\nreceipts = client.get_receipts(Pubkey.from_string(\"AGENT_PUBKEY\"))\nprint(f\"Total transactions: {len(receipts)}\")\nfor r in receipts:\n    outcome = [\"released\", \"refunded\", \"disputed\"][r.outcome]\n    print(f\"  #{r.receipt_index}: {r.amount_sol} SOL — {outcome}\")\n\nImportant Constraints\nMinimum escrow: 0.05 SOL\nMaximum escrow: 10.0 SOL\nMinimum verification window: 10 seconds\nMaximum delivery time: 30 days\nFee: 2% on settlement (1% ClawPay + 1% referrer)\nNetwork: Solana Mainnet (default) or Devnet\nGuardrails\nNEVER create an escrow without confirming the amount with the user first\nNEVER send funds without verifying the seller's public key\nAlways display the escrow address after creation — the user needs it\nAlways check escrow status before attempting release or refund\nIf a keypair file is not found, ask the user — do not guess\nReport all errors clearly, especially insufficient balance errors\nWhen checking reputation, mention both successful and failed transactions for honesty\nVerification\n\nAfter any transaction, you can verify on Solana Explorer:\n\nProgram: https://explorer.solana.com/address/F2nwkN9i2kUDgjfLwHwz2zPBXDxLDFjzmmV4TXT6BWeD\nTransaction: https://explorer.solana.com/tx/TRANSACTION_SIGNATURE\nLinks\nWebsite: https://claw-pay.com\nSDK: https://pypi.org/project/clawpay/\nGitHub: https://github.com/jakemeyer125-design/ClawPay-SDK"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/jakemeyer125-design/clawpay-escrow",
    "publisherUrl": "https://clawhub.ai/jakemeyer125-design/clawpay-escrow",
    "owner": "jakemeyer125-design",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/clawpay-escrow",
    "downloadUrl": "https://openagent3.xyz/downloads/clawpay-escrow",
    "agentUrl": "https://openagent3.xyz/skills/clawpay-escrow/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clawpay-escrow/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clawpay-escrow/agent.md"
  }
}