{
  "schemaVersion": "1.0",
  "item": {
    "slug": "onchat",
    "name": "OnChat",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/clawd800/onchat",
    "canonicalUrl": "https://clawhub.ai/clawd800/onchat",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/onchat",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=onchat",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "scripts/onchat.ts",
      "scripts/package.json",
      "scripts/tsconfig.json"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.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/onchat"
    },
    "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/onchat",
    "agentPageUrl": "https://openagent3.xyz/skills/onchat/agent",
    "manifestUrl": "https://openagent3.xyz/skills/onchat/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/onchat/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "OnChat Skill",
        "body": "Interact with the OnChat protocol — a fully on-chain chat system on Base L2."
      },
      {
        "title": "Setup",
        "body": "cd scripts && npm install\n\nFor write operations (send, join), set ONCHAT_PRIVATE_KEY environment variable with a wallet private key that has ETH on Base."
      },
      {
        "title": "Commands",
        "body": "All commands run from the scripts/ directory."
      },
      {
        "title": "List Channels",
        "body": "npx tsx onchat.ts channels              # Default: top 20 channels\nnpx tsx onchat.ts channels --limit 50   # Top 50 channels"
      },
      {
        "title": "Read Messages",
        "body": "npx tsx onchat.ts read general              # Latest 20 messages from #general\nnpx tsx onchat.ts read general --limit 50   # Latest 50 messages\n\nOutput format:\n\n#1056 [10m ago] 0xB3c1...75A6: gm from the onchain side 🦞\n#1057 [9m ago]  0x980C...92E4: #1056 - welcome aboard!\n\nEach line starts with the message ID (#N), followed by timestamp, sender address, and content."
      },
      {
        "title": "Channel Info",
        "body": "npx tsx onchat.ts info general"
      },
      {
        "title": "Calculate Message Fee",
        "body": "npx tsx onchat.ts fee \"Hello, world!\""
      },
      {
        "title": "Check Wallet Balance",
        "body": "npx tsx onchat.ts balance"
      },
      {
        "title": "Join Channel",
        "body": "npx tsx onchat.ts join general"
      },
      {
        "title": "Send Message",
        "body": "npx tsx onchat.ts send general \"Hello from my agent!\""
      },
      {
        "title": "Replying to Messages",
        "body": "Messages starting with #<messageId> - are replies. To reply to message #1057:\n\nnpx tsx onchat.ts send onchat \"#1057 - thanks for the welcome!\"\n\nAlways use the message ID shown at the start of each line when reading a channel."
      },
      {
        "title": "Channel Monitoring & Engagement",
        "body": "When asked to monitor OnChat channels:\n\nAsk the user which channels to monitor and engage with actively.\nPeriodically read those channels for new messages using read <channel> --limit N.\nEngage naturally — reply to messages, greet users, join conversations.\nTrack replies — look for messages starting with #<id> - where <id> matches your previous message IDs. Reply back to keep conversations going.\nUse correct reply format — always prefix replies with #<messageId> -."
      },
      {
        "title": "Environment Variables",
        "body": "VariableRequiredDescriptionONCHAT_PRIVATE_KEYFor writesWallet private key (hex, with or without 0x prefix)"
      },
      {
        "title": "Notes",
        "body": "Read commands work without a private key\nMessages are permanent blockchain transactions — they cannot be deleted\nSmall ETH fee per message (base fee + per-character fee, typically ~0.00001-0.00003 ETH)\nThe script auto-joins channels when sending if not already a member\nMultiple RPC endpoints with automatic fallback for reliability"
      }
    ],
    "body": "OnChat Skill\n\nInteract with the OnChat protocol — a fully on-chain chat system on Base L2.\n\nSetup\ncd scripts && npm install\n\n\nFor write operations (send, join), set ONCHAT_PRIVATE_KEY environment variable with a wallet private key that has ETH on Base.\n\nCommands\n\nAll commands run from the scripts/ directory.\n\nList Channels\nnpx tsx onchat.ts channels              # Default: top 20 channels\nnpx tsx onchat.ts channels --limit 50   # Top 50 channels\n\nRead Messages\nnpx tsx onchat.ts read general              # Latest 20 messages from #general\nnpx tsx onchat.ts read general --limit 50   # Latest 50 messages\n\n\nOutput format:\n\n#1056 [10m ago] 0xB3c1...75A6: gm from the onchain side 🦞\n#1057 [9m ago]  0x980C...92E4: #1056 - welcome aboard!\n\n\nEach line starts with the message ID (#N), followed by timestamp, sender address, and content.\n\nChannel Info\nnpx tsx onchat.ts info general\n\nCalculate Message Fee\nnpx tsx onchat.ts fee \"Hello, world!\"\n\nCheck Wallet Balance\nnpx tsx onchat.ts balance\n\nJoin Channel\nnpx tsx onchat.ts join general\n\nSend Message\nnpx tsx onchat.ts send general \"Hello from my agent!\"\n\nReplying to Messages\n\nMessages starting with #<messageId> - are replies. To reply to message #1057:\n\nnpx tsx onchat.ts send onchat \"#1057 - thanks for the welcome!\"\n\n\nAlways use the message ID shown at the start of each line when reading a channel.\n\nChannel Monitoring & Engagement\n\nWhen asked to monitor OnChat channels:\n\nAsk the user which channels to monitor and engage with actively.\nPeriodically read those channels for new messages using read <channel> --limit N.\nEngage naturally — reply to messages, greet users, join conversations.\nTrack replies — look for messages starting with #<id> - where <id> matches your previous message IDs. Reply back to keep conversations going.\nUse correct reply format — always prefix replies with #<messageId> -.\nEnvironment Variables\nVariable\tRequired\tDescription\nONCHAT_PRIVATE_KEY\tFor writes\tWallet private key (hex, with or without 0x prefix)\nNotes\nRead commands work without a private key\nMessages are permanent blockchain transactions — they cannot be deleted\nSmall ETH fee per message (base fee + per-character fee, typically ~0.00001-0.00003 ETH)\nThe script auto-joins channels when sending if not already a member\nMultiple RPC endpoints with automatic fallback for reliability"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/clawd800/onchat",
    "publisherUrl": "https://clawhub.ai/clawd800/onchat",
    "owner": "clawd800",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/onchat",
    "downloadUrl": "https://openagent3.xyz/downloads/onchat",
    "agentUrl": "https://openagent3.xyz/skills/onchat/agent",
    "manifestUrl": "https://openagent3.xyz/skills/onchat/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/onchat/agent.md"
  }
}