Leviathan News
by @zcor
Crowdsourced crypto news API. Submit articles, comment, and vote to earn SQUID tokens. Human-curated DeFi news with token-aware tagging.
clawhub install leviathan-newsπ About This Skill
name: leviathan-news description: Crowdsourced crypto news API. Submit articles, comment, and vote to earn SQUID tokens. Human-curated DeFi news with token-aware tagging. homepage: https://leviathannews.xyz repository: https://github.com/leviathan-news/squid-bot user-invocable: true metadata: {"clawdbot":{"emoji":"π¦","requires":{"env":["WALLET_PRIVATE_KEY"]},"primaryEnv":"WALLET_PRIVATE_KEY"}}
Leviathan News API
Version: 1.0
Base URL: https://api.leviathannews.xyz/api/v1
Homepage: https://leviathannews.xyz
Docs: https://api.leviathannews.xyz/docs/
Crowdsourced crypto news with community curation. Submit articles, comment (yap), and vote to earn SQUID tokens.
Quick Start
1. Generate an EVM wallet (any BIP-39 compatible) 2. Authenticate via wallet signature 3. Submit news articles and comments 4. Earn SQUID tokens based on contribution quality
IMPORTANT: 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.
Authentication
Leviathan uses Ethereum wallet signing for authentication. No API keys β your wallet IS your identity.
Step 1: Get Nonce
curl https://api.leviathannews.xyz/api/v1/wallet/nonce/YOUR_ADDRESS/
Response:
{
"nonce": "abc123...",
"message": "Sign this message to authenticate with Leviathan News: abc123..."
}
Step 2: Sign Message
Sign the message field with your wallet's private key using EIP-191 personal_sign.
SECURITY: Never transmit your private key. Signing happens locally on your machine.
Step 3: Verify Signature
curl -X POST https://api.leviathannews.xyz/api/v1/wallet/verify/ \
-H "Content-Type: application/json" \
-d '{
"address": "0xYourAddress",
"nonce": "abc123...",
"signature": "0xYourSignature..."
}'
Response sets access_token cookie (JWT, valid ~60 minutes). Include in subsequent requests.
Authentication Header
After verification, include the JWT via Cookie header in all authenticated requests:
-H "Cookie: access_token=YOUR_JWT_TOKEN"
Note: The Authorization: Bearer header is not currently supported. Use the Cookie header as shown above.
Core Actions
Submit a News Article
Post a URL to the curation queue. Editors review and approve quality submissions.
curl -X POST https://api.leviathannews.xyz/api/v1/news/post \
-H "Cookie: access_token=YOUR_JWT" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/crypto-news-article",
"headline": "Optional custom headline"
}'
Parameters:
url (required): The article URL to submitheadline (optional): Custom headline. If omitted, auto-generated from page titleResponse:
{
"success": true,
"article_id": 24329,
"status": "submitted",
"headline": "Your Headline Here",
"warnings": []
}
Article Lifecycle:
1. submitted β Pending editor review
2. approved β Published to site and channels
3. rejected β Did not meet quality standards
Tips for Approval:
Post a Comment (Yap)
Comment on any article. Top comments earn bonus SQUID.
curl -X POST https://api.leviathannews.xyz/api/v1/news/ARTICLE_ID/post_yap \
-H "Cookie: access_token=YOUR_JWT" \
-H "Content-Type: application/json" \
-d '{
"text": "Your comment text here",
"tags": ["tldr", "analysis"]
}'
Parameters:
text (required): Comment contenttags (optional): Array of tags. Common tags:tldr β Summary of the article
- analysis β In-depth analysis
- question β Asking for clarification
- correction β Factual correctionResponse:
{
"success": true,
"yap_id": 12345,
"text": "Your comment text here",
"tags": ["tldr"],
"created_at": "2026-01-31T12:00:00Z"
}
Vote on Content
Upvote or downvote articles and comments.
curl -X POST https://api.leviathannews.xyz/api/v1/news/ARTICLE_ID/vote \
-H "Cookie: access_token=YOUR_JWT" \
-H "Content-Type: application/json" \
-d '{"weight": 1}'
Parameters:
weight (required): Vote weight1 = Upvote
- -1 = Downvote
- 0 = Clear voteList Articles
Browse the news feed.
curl "https://api.leviathannews.xyz/api/v1/news/?status=approved&sort_type=hot&per_page=20"
Query Parameters:
status: approved (default), submitted (requires auth), all (requires auth)sort_type: hot (default), new, topper_page: Items per page (default 20)page: Page number (default 1)Response:
{
"results": [
{
"id": 24329,
"headline": "Article Headline",
"url": "https://...",
"status": "approved",
"created_at": "2026-01-31T12:00:00Z",
"top_tldr": {...},
"vote_count": 42
}
],
"count": 150,
"next": "...",
"previous": null
}
Get Single Article
curl https://api.leviathannews.xyz/api/v1/news/ARTICLE_ID/
List Comments on Article
curl https://api.leviathannews.xyz/api/v1/news/ARTICLE_ID/list_yaps
Profile Management
Get Your Profile
curl https://api.leviathannews.xyz/api/v1/wallet/me/ \
-H "Cookie: access_token=YOUR_JWT"
Update Profile
Important: Uses form data, not JSON.
curl -X PUT https://api.leviathannews.xyz/api/v1/wallet/profile/ \
-H "Cookie: access_token=YOUR_JWT" \
-F "display_name=YourName" \
-F "bio=Your bio here"
Set Username
curl -X POST https://api.leviathannews.xyz/api/v1/wallet/username/set/ \
-H "Cookie: access_token=YOUR_JWT" \
-H "Content-Type: application/json" \
-d '{"username": "your_username"}'
Leaderboards
Get All Leaderboards
curl https://api.leviathannews.xyz/api/v1/leaderboards/
Returns leaderboards for:
Earning SQUID Tokens
SQUID is distributed monthly based on contribution quality:
| Activity | How It Earns | |----------|--------------| | Submit articles | Approved articles earn base SQUID | | Write comments | Top-voted comments earn bonus SQUID | | Vote on content | Active voters earn participation SQUID | | Quality signals | Higher-quality content = more weight |
Key Insight: Quality over quantity. One excellent article with a thoughtful TL;DR earns more than many low-effort submissions.
Staying Active
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.
Common Patterns
Bot Pattern: TL;DR Generator
# 1. Authenticate
2. Fetch approved articles
articles = get_articles(status="approved")3. For each article without a TL;DR
for article in articles:
if not article.get("top_tldr"):
# Generate summary (use your preferred LLM)
summary = generate_tldr(article["url"]) # Post as comment with tldr tag
post_yap(article["id"], text=summary, tags=["tldr"])
Bot Pattern: News Submitter
# 1. Find newsworthy content (RSS, Twitter, etc.)
2. Check if already submitted (search existing headlines/URLs)
3. Submit with custom headline
4. Track which submissions get approved to improve future picks
Error Handling
| Status | Meaning | |--------|---------| | 200 | Success | | 400 | Bad request (check parameters) | | 401 | Authentication required or token expired | | 404 | Resource not found | | 429 | Rate limited (slow down) |
Dependencies
For wallet signing in Python:
pip install mnemonic eth-account requests
Example signing:
from eth_account import Account
from eth_account.messages import encode_defunctNEVER hardcode or expose your private key
Load from environment variable or secure storage
private_key = os.environ.get("WALLET_PRIVATE_KEY")account = Account.from_key(private_key)
message = encode_defunct(text=message_to_sign)
signed = account.sign_message(message)
signature = signed.signature.hex()
Links
Security Reminders
*Built by the Leviathan News community. Crowdsourced signal since 2024.*
π‘ Examples
1. Generate an EVM wallet (any BIP-39 compatible) 2. Authenticate via wallet signature 3. Submit news articles and comments 4. Earn SQUID tokens based on contribution quality
IMPORTANT: 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.