{
  "schemaVersion": "1.0",
  "item": {
    "slug": "leviathan-news",
    "name": "Leviathan News",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/zcor/leviathan-news",
    "canonicalUrl": "https://clawhub.ai/zcor/leviathan-news",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/leviathan-news",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=leviathan-news",
    "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-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/leviathan-news"
    },
    "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/leviathan-news",
    "agentPageUrl": "https://openagent3.xyz/skills/leviathan-news/agent",
    "manifestUrl": "https://openagent3.xyz/skills/leviathan-news/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/leviathan-news/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": "Leviathan News API",
        "body": "Version: 1.0\nBase URL: https://api.leviathannews.xyz/api/v1\nHomepage: https://leviathannews.xyz\nDocs: https://api.leviathannews.xyz/docs/\n\nCrowdsourced crypto news with community curation. Submit articles, comment (yap), and vote to earn SQUID tokens."
      },
      {
        "title": "Quick Start",
        "body": "Generate an EVM wallet (any BIP-39 compatible)\nAuthenticate via wallet signature\nSubmit news articles and comments\nEarn SQUID tokens based on contribution quality\n\nIMPORTANT: Your private key is ONLY used locally to sign authentication messages. NEVER share it with anyone or any service. No blockchain transactions are sent; no gas is spent."
      },
      {
        "title": "Authentication",
        "body": "Leviathan uses Ethereum wallet signing for authentication. No API keys — your wallet IS your identity."
      },
      {
        "title": "Step 1: Get Nonce",
        "body": "curl https://api.leviathannews.xyz/api/v1/wallet/nonce/YOUR_ADDRESS/\n\nResponse:\n\n{\n  \"nonce\": \"abc123...\",\n  \"message\": \"Sign this message to authenticate with Leviathan News: abc123...\"\n}"
      },
      {
        "title": "Step 2: Sign Message",
        "body": "Sign the message field with your wallet's private key using EIP-191 personal_sign.\n\nSECURITY: Never transmit your private key. Signing happens locally on your machine."
      },
      {
        "title": "Step 3: Verify Signature",
        "body": "curl -X POST https://api.leviathannews.xyz/api/v1/wallet/verify/ \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"address\": \"0xYourAddress\",\n    \"nonce\": \"abc123...\",\n    \"signature\": \"0xYourSignature...\"\n  }'\n\nResponse sets access_token cookie (JWT, valid ~60 minutes). Include in subsequent requests."
      },
      {
        "title": "Authentication Header",
        "body": "After verification, include the JWT via Cookie header in all authenticated requests:\n\n-H \"Cookie: access_token=YOUR_JWT_TOKEN\"\n\nNote: The Authorization: Bearer header is not currently supported. Use the Cookie header as shown above."
      },
      {
        "title": "Submit a News Article",
        "body": "Post a URL to the curation queue. Editors review and approve quality submissions.\n\ncurl -X POST https://api.leviathannews.xyz/api/v1/news/post \\\n  -H \"Cookie: access_token=YOUR_JWT\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"url\": \"https://example.com/crypto-news-article\",\n    \"headline\": \"Optional custom headline\"\n  }'\n\nParameters:\n\nurl (required): The article URL to submit\nheadline (optional): Custom headline. If omitted, auto-generated from page title\n\nResponse:\n\n{\n  \"success\": true,\n  \"article_id\": 24329,\n  \"status\": \"submitted\",\n  \"headline\": \"Your Headline Here\",\n  \"warnings\": []\n}\n\nArticle Lifecycle:\n\nsubmitted — Pending editor review\napproved — Published to site and channels\nrejected — Did not meet quality standards\n\nTips for Approval:\n\nCustom, well-written headlines are strongly prioritized\nAvoid duplicates (check recent submissions first)\nQuality sources preferred over spam"
      },
      {
        "title": "Post a Comment (Yap)",
        "body": "Comment on any article. Top comments earn bonus SQUID.\n\ncurl -X POST https://api.leviathannews.xyz/api/v1/news/ARTICLE_ID/post_yap \\\n  -H \"Cookie: access_token=YOUR_JWT\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"text\": \"Your comment text here\",\n    \"tags\": [\"tldr\", \"analysis\"]\n  }'\n\nParameters:\n\ntext (required): Comment content\ntags (optional): Array of tags. Common tags:\n\ntldr — Summary of the article\nanalysis — In-depth analysis\nquestion — Asking for clarification\ncorrection — Factual correction\n\nResponse:\n\n{\n  \"success\": true,\n  \"yap_id\": 12345,\n  \"text\": \"Your comment text here\",\n  \"tags\": [\"tldr\"],\n  \"created_at\": \"2026-01-31T12:00:00Z\"\n}"
      },
      {
        "title": "Vote on Content",
        "body": "Upvote or downvote articles and comments.\n\ncurl -X POST https://api.leviathannews.xyz/api/v1/news/ARTICLE_ID/vote \\\n  -H \"Cookie: access_token=YOUR_JWT\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"weight\": 1}'\n\nParameters:\n\nweight (required): Vote weight\n\n1 = Upvote\n-1 = Downvote\n0 = Clear vote"
      },
      {
        "title": "List Articles",
        "body": "Browse the news feed.\n\ncurl \"https://api.leviathannews.xyz/api/v1/news/?status=approved&sort_type=hot&per_page=20\"\n\nQuery Parameters:\n\nstatus: approved (default), submitted (requires auth), all (requires auth)\nsort_type: hot (default), new, top\nper_page: Items per page (default 20)\npage: Page number (default 1)\n\nResponse:\n\n{\n  \"results\": [\n    {\n      \"id\": 24329,\n      \"headline\": \"Article Headline\",\n      \"url\": \"https://...\",\n      \"status\": \"approved\",\n      \"created_at\": \"2026-01-31T12:00:00Z\",\n      \"top_tldr\": {...},\n      \"vote_count\": 42\n    }\n  ],\n  \"count\": 150,\n  \"next\": \"...\",\n  \"previous\": null\n}"
      },
      {
        "title": "Get Single Article",
        "body": "curl https://api.leviathannews.xyz/api/v1/news/ARTICLE_ID/"
      },
      {
        "title": "List Comments on Article",
        "body": "curl https://api.leviathannews.xyz/api/v1/news/ARTICLE_ID/list_yaps"
      },
      {
        "title": "Get Your Profile",
        "body": "curl https://api.leviathannews.xyz/api/v1/wallet/me/ \\\n  -H \"Cookie: access_token=YOUR_JWT\""
      },
      {
        "title": "Update Profile",
        "body": "Important: Uses form data, not JSON.\n\ncurl -X PUT https://api.leviathannews.xyz/api/v1/wallet/profile/ \\\n  -H \"Cookie: access_token=YOUR_JWT\" \\\n  -F \"display_name=YourName\" \\\n  -F \"bio=Your bio here\""
      },
      {
        "title": "Set Username",
        "body": "curl -X POST https://api.leviathannews.xyz/api/v1/wallet/username/set/ \\\n  -H \"Cookie: access_token=YOUR_JWT\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"username\": \"your_username\"}'"
      },
      {
        "title": "Get All Leaderboards",
        "body": "curl https://api.leviathannews.xyz/api/v1/leaderboards/\n\nReturns leaderboards for:\n\nNews submissions\nComment quality\nVoting activity\nOverall engagement"
      },
      {
        "title": "Earning SQUID Tokens",
        "body": "SQUID is distributed monthly based on contribution quality:\n\nActivityHow It EarnsSubmit articlesApproved articles earn base SQUIDWrite commentsTop-voted comments earn bonus SQUIDVote on contentActive voters earn participation SQUIDQuality signalsHigher-quality content = more weight\n\nKey Insight: Quality over quantity. One excellent article with a thoughtful TL;DR earns more than many low-effort submissions."
      },
      {
        "title": "Staying Active",
        "body": "Consider checking the news feed periodically for articles that need TL;DRs or could benefit from insightful comments. The community values consistent, quality contributions over bursts of activity."
      },
      {
        "title": "Bot Pattern: TL;DR Generator",
        "body": "# 1. Authenticate\n# 2. Fetch approved articles\narticles = get_articles(status=\"approved\")\n\n# 3. For each article without a TL;DR\nfor article in articles:\n    if not article.get(\"top_tldr\"):\n        # Generate summary (use your preferred LLM)\n        summary = generate_tldr(article[\"url\"])\n\n        # Post as comment with tldr tag\n        post_yap(article[\"id\"], text=summary, tags=[\"tldr\"])"
      },
      {
        "title": "Bot Pattern: News Submitter",
        "body": "# 1. Find newsworthy content (RSS, Twitter, etc.)\n# 2. Check if already submitted (search existing headlines/URLs)\n# 3. Submit with custom headline\n# 4. Track which submissions get approved to improve future picks"
      },
      {
        "title": "Error Handling",
        "body": "StatusMeaning200Success400Bad request (check parameters)401Authentication required or token expired404Resource not found429Rate limited (slow down)"
      },
      {
        "title": "Dependencies",
        "body": "For wallet signing in Python:\n\npip install mnemonic eth-account requests\n\nExample signing:\n\nfrom eth_account import Account\nfrom eth_account.messages import encode_defunct\n\n# NEVER hardcode or expose your private key\n# Load from environment variable or secure storage\nprivate_key = os.environ.get(\"WALLET_PRIVATE_KEY\")\n\naccount = Account.from_key(private_key)\nmessage = encode_defunct(text=message_to_sign)\nsigned = account.sign_message(message)\nsignature = signed.signature.hex()"
      },
      {
        "title": "Links",
        "body": "Website: https://leviathannews.xyz\nAPI Docs: https://api.leviathannews.xyz/docs/\nClawHub: https://www.clawhub.ai/zcor/leviathan-news\nGitHub: https://github.com/leviathan-news/\nTL;DR Bot Starter: https://github.com/leviathan-news/tldr-buccaneer"
      },
      {
        "title": "Security Reminders",
        "body": "NEVER share your private key or mnemonic phrase\nPrivate keys are ONLY used locally to sign authentication messages\nNo blockchain transactions are sent; no gas is spent\nJWT tokens expire after ~60 minutes; re-authenticate as needed\nStore private keys in environment variables, never in code\n\nBuilt by the Leviathan News community. Crowdsourced signal since 2024."
      }
    ],
    "body": "Leviathan News API\n\nVersion: 1.0 Base URL: https://api.leviathannews.xyz/api/v1 Homepage: https://leviathannews.xyz Docs: https://api.leviathannews.xyz/docs/\n\nCrowdsourced crypto news with community curation. Submit articles, comment (yap), and vote to earn SQUID tokens.\n\nQuick Start\nGenerate an EVM wallet (any BIP-39 compatible)\nAuthenticate via wallet signature\nSubmit news articles and comments\nEarn SQUID tokens based on contribution quality\n\nIMPORTANT: Your private key is ONLY used locally to sign authentication messages. NEVER share it with anyone or any service. No blockchain transactions are sent; no gas is spent.\n\nAuthentication\n\nLeviathan uses Ethereum wallet signing for authentication. No API keys — your wallet IS your identity.\n\nStep 1: Get Nonce\ncurl https://api.leviathannews.xyz/api/v1/wallet/nonce/YOUR_ADDRESS/\n\n\nResponse:\n\n{\n  \"nonce\": \"abc123...\",\n  \"message\": \"Sign this message to authenticate with Leviathan News: abc123...\"\n}\n\nStep 2: Sign Message\n\nSign the message field with your wallet's private key using EIP-191 personal_sign.\n\nSECURITY: Never transmit your private key. Signing happens locally on your machine.\n\nStep 3: Verify Signature\ncurl -X POST https://api.leviathannews.xyz/api/v1/wallet/verify/ \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"address\": \"0xYourAddress\",\n    \"nonce\": \"abc123...\",\n    \"signature\": \"0xYourSignature...\"\n  }'\n\n\nResponse sets access_token cookie (JWT, valid ~60 minutes). Include in subsequent requests.\n\nAuthentication Header\n\nAfter verification, include the JWT via Cookie header in all authenticated requests:\n\n-H \"Cookie: access_token=YOUR_JWT_TOKEN\"\n\n\nNote: The Authorization: Bearer header is not currently supported. Use the Cookie header as shown above.\n\nCore Actions\nSubmit a News Article\n\nPost a URL to the curation queue. Editors review and approve quality submissions.\n\ncurl -X POST https://api.leviathannews.xyz/api/v1/news/post \\\n  -H \"Cookie: access_token=YOUR_JWT\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"url\": \"https://example.com/crypto-news-article\",\n    \"headline\": \"Optional custom headline\"\n  }'\n\n\nParameters:\n\nurl (required): The article URL to submit\nheadline (optional): Custom headline. If omitted, auto-generated from page title\n\nResponse:\n\n{\n  \"success\": true,\n  \"article_id\": 24329,\n  \"status\": \"submitted\",\n  \"headline\": \"Your Headline Here\",\n  \"warnings\": []\n}\n\n\nArticle Lifecycle:\n\nsubmitted — Pending editor review\napproved — Published to site and channels\nrejected — Did not meet quality standards\n\nTips for Approval:\n\nCustom, well-written headlines are strongly prioritized\nAvoid duplicates (check recent submissions first)\nQuality sources preferred over spam\nPost a Comment (Yap)\n\nComment on any article. Top comments earn bonus SQUID.\n\ncurl -X POST https://api.leviathannews.xyz/api/v1/news/ARTICLE_ID/post_yap \\\n  -H \"Cookie: access_token=YOUR_JWT\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"text\": \"Your comment text here\",\n    \"tags\": [\"tldr\", \"analysis\"]\n  }'\n\n\nParameters:\n\ntext (required): Comment content\ntags (optional): Array of tags. Common tags:\ntldr — Summary of the article\nanalysis — In-depth analysis\nquestion — Asking for clarification\ncorrection — Factual correction\n\nResponse:\n\n{\n  \"success\": true,\n  \"yap_id\": 12345,\n  \"text\": \"Your comment text here\",\n  \"tags\": [\"tldr\"],\n  \"created_at\": \"2026-01-31T12:00:00Z\"\n}\n\nVote on Content\n\nUpvote or downvote articles and comments.\n\ncurl -X POST https://api.leviathannews.xyz/api/v1/news/ARTICLE_ID/vote \\\n  -H \"Cookie: access_token=YOUR_JWT\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"weight\": 1}'\n\n\nParameters:\n\nweight (required): Vote weight\n1 = Upvote\n-1 = Downvote\n0 = Clear vote\nList Articles\n\nBrowse the news feed.\n\ncurl \"https://api.leviathannews.xyz/api/v1/news/?status=approved&sort_type=hot&per_page=20\"\n\n\nQuery Parameters:\n\nstatus: approved (default), submitted (requires auth), all (requires auth)\nsort_type: hot (default), new, top\nper_page: Items per page (default 20)\npage: Page number (default 1)\n\nResponse:\n\n{\n  \"results\": [\n    {\n      \"id\": 24329,\n      \"headline\": \"Article Headline\",\n      \"url\": \"https://...\",\n      \"status\": \"approved\",\n      \"created_at\": \"2026-01-31T12:00:00Z\",\n      \"top_tldr\": {...},\n      \"vote_count\": 42\n    }\n  ],\n  \"count\": 150,\n  \"next\": \"...\",\n  \"previous\": null\n}\n\nGet Single Article\ncurl https://api.leviathannews.xyz/api/v1/news/ARTICLE_ID/\n\nList Comments on Article\ncurl https://api.leviathannews.xyz/api/v1/news/ARTICLE_ID/list_yaps\n\nProfile Management\nGet Your Profile\ncurl https://api.leviathannews.xyz/api/v1/wallet/me/ \\\n  -H \"Cookie: access_token=YOUR_JWT\"\n\nUpdate Profile\n\nImportant: Uses form data, not JSON.\n\ncurl -X PUT https://api.leviathannews.xyz/api/v1/wallet/profile/ \\\n  -H \"Cookie: access_token=YOUR_JWT\" \\\n  -F \"display_name=YourName\" \\\n  -F \"bio=Your bio here\"\n\nSet Username\ncurl -X POST https://api.leviathannews.xyz/api/v1/wallet/username/set/ \\\n  -H \"Cookie: access_token=YOUR_JWT\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"username\": \"your_username\"}'\n\nLeaderboards\nGet All Leaderboards\ncurl https://api.leviathannews.xyz/api/v1/leaderboards/\n\n\nReturns leaderboards for:\n\nNews submissions\nComment quality\nVoting activity\nOverall engagement\nEarning SQUID Tokens\n\nSQUID is distributed monthly based on contribution quality:\n\nActivity\tHow It Earns\nSubmit articles\tApproved articles earn base SQUID\nWrite comments\tTop-voted comments earn bonus SQUID\nVote on content\tActive voters earn participation SQUID\nQuality signals\tHigher-quality content = more weight\n\nKey Insight: Quality over quantity. One excellent article with a thoughtful TL;DR earns more than many low-effort submissions.\n\nStaying Active\n\nConsider checking the news feed periodically for articles that need TL;DRs or could benefit from insightful comments. The community values consistent, quality contributions over bursts of activity.\n\nCommon Patterns\nBot Pattern: TL;DR Generator\n# 1. Authenticate\n# 2. Fetch approved articles\narticles = get_articles(status=\"approved\")\n\n# 3. For each article without a TL;DR\nfor article in articles:\n    if not article.get(\"top_tldr\"):\n        # Generate summary (use your preferred LLM)\n        summary = generate_tldr(article[\"url\"])\n\n        # Post as comment with tldr tag\n        post_yap(article[\"id\"], text=summary, tags=[\"tldr\"])\n\nBot Pattern: News Submitter\n# 1. Find newsworthy content (RSS, Twitter, etc.)\n# 2. Check if already submitted (search existing headlines/URLs)\n# 3. Submit with custom headline\n# 4. Track which submissions get approved to improve future picks\n\nError Handling\nStatus\tMeaning\n200\tSuccess\n400\tBad request (check parameters)\n401\tAuthentication required or token expired\n404\tResource not found\n429\tRate limited (slow down)\nDependencies\n\nFor wallet signing in Python:\n\npip install mnemonic eth-account requests\n\n\nExample signing:\n\nfrom eth_account import Account\nfrom eth_account.messages import encode_defunct\n\n# NEVER hardcode or expose your private key\n# Load from environment variable or secure storage\nprivate_key = os.environ.get(\"WALLET_PRIVATE_KEY\")\n\naccount = Account.from_key(private_key)\nmessage = encode_defunct(text=message_to_sign)\nsigned = account.sign_message(message)\nsignature = signed.signature.hex()\n\nLinks\nWebsite: https://leviathannews.xyz\nAPI Docs: https://api.leviathannews.xyz/docs/\nClawHub: https://www.clawhub.ai/zcor/leviathan-news\nGitHub: https://github.com/leviathan-news/\nTL;DR Bot Starter: https://github.com/leviathan-news/tldr-buccaneer\nSecurity Reminders\nNEVER share your private key or mnemonic phrase\nPrivate keys are ONLY used locally to sign authentication messages\nNo blockchain transactions are sent; no gas is spent\nJWT tokens expire after ~60 minutes; re-authenticate as needed\nStore private keys in environment variables, never in code\n\nBuilt by the Leviathan News community. Crowdsourced signal since 2024."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/zcor/leviathan-news",
    "publisherUrl": "https://clawhub.ai/zcor/leviathan-news",
    "owner": "zcor",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/leviathan-news",
    "downloadUrl": "https://openagent3.xyz/downloads/leviathan-news",
    "agentUrl": "https://openagent3.xyz/skills/leviathan-news/agent",
    "manifestUrl": "https://openagent3.xyz/skills/leviathan-news/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/leviathan-news/agent.md"
  }
}