storyclaw-x2c-publish

X2C Distribution and Wallet API — publish video to X2C platform, manage assets (balance, claim X2C, swap to USDC, withdraw, transactions).

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "storyclaw-x2c-publish" with this command: npx skills add patches429/storyclaw-x2c-publish

X2C Publish - Distribution & Wallet API

Publish video content to the X2C platform and manage digital assets.

Critical Rules

  • Complete ALL workflow steps in order — never skip steps
  • Always add timeout to curl commands: -m 60
  • NEVER retry failed requests — report error and ask user
  • Check project status before publishing to avoid duplicates
  • Cover URL must be an image (jpg/png/webp), never a video URL

Multi-User Support

Store API key in credentials/{USER_ID}.json:

{
  "x2cApiKey": "x2c_sk_xxx"
}

Set USER_ID env var when calling. OpenClaw passes it automatically from chat context.

Or set X2C_API_KEY env var, or configure via skills."x2c-publish".env.X2C_API_KEY in ~/.openclaw/openclaw.json.

Distribution Workflow

1. distribution/categories → Get categories
2. distribution/upload-url → Get S3 presigned upload URLs
3. Upload files to S3 via HTTP PUT
4. distribution/publish → Submit with public_url from Step 3
5. distribution/query → Check review status
6. distribution/add-episodes → Add more episodes
7. distribution/list → List all projects

Two ways to provide videos:

  1. S3 Upload — use upload-url workflow for local files
  2. External URL — use existing video URLs directly in publish

API Endpoint

All requests go to the X2C Open API. The base URL is configured via X2C_API_BASE_URL env var or defaults to the production endpoint.

Headers:

  • Content-Type: application/json
  • X-API-Key: <your_x2c_api_key>

Get Categories

curl -m 60 -X POST "$X2C_API_BASE_URL" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $X2C_API_KEY" \
  -d '{"action": "distribution/categories", "lang": "zh-CN"}'

Get Upload URLs

curl -m 60 -X POST "$X2C_API_BASE_URL" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $X2C_API_KEY" \
  -d '{
    "action": "distribution/upload-url",
    "files": [
      {"file_type": "cover", "file_name": "cover.jpg", "content_type": "image/jpeg"},
      {"file_type": "video", "file_name": "ep1.mp4", "content_type": "video/mp4"}
    ]
  }'

Response includes upload_url, upload_headers, and public_url.

Upload to S3

Use the upload_url and upload_headers from the previous response:

curl -X PUT "<upload_url>" \
  -H "Content-Type: image/jpeg" \
  <additional headers from upload_headers> \
  --data-binary @cover.jpg

Publish Project

curl -m 60 -X POST "$X2C_API_BASE_URL" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $X2C_API_KEY" \
  -d '{
    "action": "distribution/publish",
    "title": "My Drama",
    "description": "A story about...",
    "category_id": "uuid",
    "cover_url": "https://...",
    "video_urls": ["https://..."],
    "enable_prediction": false
  }'
ParamRequiredDescription
titleYesProject name (max 100 chars)
descriptionYesSynopsis (max 2000 chars)
category_idYesCategory UUID
cover_urlYesCover image URL
video_urlsYesArray of video URLs (1-10)
enable_predictionNoEnable prediction market

Query Status

curl -m 60 -X POST "$X2C_API_BASE_URL" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $X2C_API_KEY" \
  -d '{"action": "distribution/query", "project_id": "uuid"}'

Status values: draft, pending_review, approved, rejected

Add Episodes

curl -m 60 -X POST "$X2C_API_BASE_URL" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $X2C_API_KEY" \
  -d '{
    "action": "distribution/add-episodes",
    "project_id": "uuid",
    "video_urls": ["https://..."]
  }'

List Projects

curl -m 60 -X POST "$X2C_API_BASE_URL" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $X2C_API_KEY" \
  -d '{"action": "distribution/list", "page": 1, "page_size": 20, "status": "approved"}'

Wallet API (Asset Management)

Get Balance

curl -m 60 -X POST "$X2C_API_BASE_URL" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $X2C_API_KEY" \
  -d '{"action": "wallet/balance"}'

Returns: credits, x2c_wallet_balance, x2c_pending_claim, x2c_pending_release, usdc_balance, wallet_address.

Claim X2C

curl -m 60 -X POST "$X2C_API_BASE_URL" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $X2C_API_KEY" \
  -d '{"action": "wallet/claim-x2c", "amount": 50.0}'

Swap X2C to USDC

curl -m 60 -X POST "$X2C_API_BASE_URL" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $X2C_API_KEY" \
  -d '{"action": "wallet/swap-x2c", "amount": 100.0}'

Withdraw USDC

curl -m 60 -X POST "$X2C_API_BASE_URL" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $X2C_API_KEY" \
  -d '{"action": "wallet/withdraw-usdc", "amount": 10.0, "to_address": "SolanaAddress..."}'

Transaction History

curl -m 60 -X POST "$X2C_API_BASE_URL" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $X2C_API_KEY" \
  -d '{"action": "wallet/transactions", "page": 1, "page_size": 20, "type": "all"}'

Types: earnings (mining, distribution, referral, etc.), purchases (consume, swap, withdrawal, etc.), or all.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Web3

Bitcoin and Tether on Arkade

Send and receive Bitcoin over Arkade (offchain), onchain (via onboard/offboard), and Lightning. Swap USDC/USDT stablecoins.

Registry SourceRecently Updated
1.4K3tiero
Web3

OK Computers + Ring Gates + Net Protocol

Interact with your OK Computer NFT on Base blockchain for onchain messaging, posting, DMs, username and website management via signed transactions.

Registry SourceRecently Updated
Web3

Xian SDK

Build applications on the Xian blockchain using the xian-py Python SDK. Use when developing apps that interact with Xian — wallets, transactions, smart contracts, state queries, token transfers. Covers sync and async patterns.

Registry SourceRecently Updated
1.1K0endogen
Web3

Github Copilot Cli

Efficient daily use of GitHub Copilot CLI for senior engineers. Use when planning, prompting, reviewing, or chaining Copilot CLI commands (gh copilot) to explore codebases, draft changes, debug issues, or accelerate workflows without losing architectural intent.

Registry SourceRecently Updated
1.8K10wilsonle