Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Retrieve Solana token data, community content, market sentiment, watchlists, and perform token-related actions via OpenDEX API endpoints.
Retrieve Solana token data, community content, market sentiment, watchlists, and perform token-related actions via OpenDEX API endpoints.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
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.
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.
You can interact with the OpenDex API to retrieve Solana token data, community-curated content, market sentiment, and more.
https://opendex-api-dy30.onrender.com Frontend: https://opendex.online
Token data, search, price, chart, sentiment, and watchlist endpoints are open and do not require authentication. They are rate-limited to 100 requests/minute per IP.
Community content endpoints under /api/v1/ require an API key passed via the X-API-Key header. Rate limits: Standard endpoints: 100 requests/minute Key registration: 10 requests/minute Search: 30 requests/minute
Register a free API key by sending a POST request with a Solana wallet address: POST /api/v1/keys/register Content-Type: application/json { "wallet": "<SOLANA_WALLET_ADDRESS>", "name": "OpenClaw" } Response (201): { "success": true, "message": "API key created successfully", "data": { "apiKey": "abc123...full64hexchars", "keyPrefix": "abc123", "owner": "<SOLANA_WALLET_ADDRESS>", "name": "OpenClaw", "createdAt": "2026-02-26T12:00:00Z" } } The full API key is only returned once at creation. Store it securely. One key per wallet. Users can also obtain keys through the web UI at https://opendex.online/api.html by connecting their wallet.
Include the key in the X-API-Key header on all /api/v1/ requests: curl -H "X-API-Key: YOUR_API_KEY" \ https://opendex-api-dy30.onrender.com/api/v1/community/<mint>
EndpointMethodDescription/api/v1/keys/infoGETGet your key's usage stats (requires X-API-Key)/api/v1/keys/status/:walletGETCheck if a wallet has a key (public)/api/v1/keys/revokeDELETERevoke your key (requires X-API-Key)
List Tokens GET /api/tokens?filter=trending&limit=50&offset=0&order=desc Filters: trending, new, gainers, losers, most_viewed Response: Array of token objects with mintAddress, name, symbol, price, priceChange24h, volume24h, marketCap, logoUri, views, sentimentScore, sentimentBullish, sentimentBearish. Search Tokens GET /api/tokens/search?q=<query> Query must be 2-100 characters. Rate limit: 30/minute. Returns matching tokens by name, symbol, or address. Get Token Details GET /api/tokens/:mint Returns full token data including price, priceChange24h, volume24h, liquidity, marketCap, fdv, supply, circulatingSupply, holders, decimals, logoUri, and community submissions (banners and socials). Get Token Price GET /api/tokens/:mint/price Returns current price data: price, marketCap, fdv, volume24h, priceChange24h, liquidity. Get Price Chart GET /api/tokens/:mint/chart?interval=1h&limit=100 Intervals: 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w Get OHLCV Data GET /api/tokens/:mint/ohlcv?interval=1h&limit=100 Returns candlestick data (open, high, low, close, volume). Get Liquidity Pools GET /api/tokens/:mint/pools Batch Get Tokens POST /api/tokens/batch Content-Type: application/json { "mints": ["mint1", "mint2", ...] } Max 50 tokens per request. Check Token Holder GET /api/tokens/:mint/holder/:wallet Returns balance, holdsToken, percentageHeld, totalSupply, circulatingSupply. Record Page View POST /api/tokens/:mint/view Get View Count GET /api/tokens/:mint/views
Get Community Content for a Token GET /api/v1/community/:mint Returns the top-voted banner and social links for a token. Response: { "success": true, "data": { "token": "So11111111111111111111111111111111111111112", "banner": { "url": "https://i.imgur.com/example.png", "score": 15, "submittedAt": "2026-02-26T12:00:00Z" }, "links": { "twitter": { "url": "https://twitter.com/solana", "score": 12 }, "telegram": null, "discord": { "url": "https://discord.gg/solana", "score": 8 }, "tiktok": null, "website": { "url": "https://solana.com", "score": 10 } }, "submissionCount": 4 } } Get All Approved Submissions GET /api/v1/community/:mint/all?type=banner Optional type filter: banner, twitter, telegram, discord, tiktok, website Response: { "success": true, "data": { "token": "...", "count": 3, "submissions": [ { "id": 123, "type": "banner", "url": "https://i.imgur.com/example.png", "score": 15, "upvotes": 20, "downvotes": 5, "submittedAt": "2026-02-26T12:00:00Z" } ] } } Batch Community Content GET /api/v1/community/batch?mints=mint1,mint2,mint3 Max 20 tokens per request. Returns a map of mint address to community content (banner URL and link URLs as strings, not objects).
Get Sentiment GET /api/sentiment/:mint?wallet=<optional_wallet> Returns bullish/bearish counts and the user's vote if wallet is provided. Response: { "tally": { "bullish": 245, "bearish": 53, "score": 192 }, "userVote": "bullish" } Cast Sentiment Vote POST /api/sentiment/:mint Content-Type: application/json { "wallet": "<WALLET>", "sentiment": "bullish" } Sentiment values: bullish or bearish. No token holder requirement. Bulk Sentiment POST /api/sentiment/bulk Content-Type: application/json { "mints": ["mint1", "mint2", ...] } Max 100 mints. Returns sentiment tallies for each.
Get Submissions for a Token GET /api/submissions/token/:mint?status=approved&type=banner Statuses: pending, approved, rejected, all Create Submission POST /api/submissions Content-Type: application/json { "tokenMint": "<MINT>", "type": "twitter", "contentUrl": "https://twitter.com/example", "walletAddress": "<WALLET>", "signature": [...], "timestamp": 1709012400000 } Types: banner, twitter, telegram, discord, tiktok, website Requires Ed25519 wallet signature. Submissions are community-moderated through voting.
Cast Vote POST /api/votes Content-Type: application/json { "submissionId": 123, "voterWallet": "<WALLET>", "voteType": "up", "signature": [...], "timestamp": 1709012400000 } Voter must hold the token (minimum 0.1% of supply). Vote weight scales by holdings (1x-3x). Check Vote Status GET /api/votes/check?submissionId=123&wallet=<WALLET> Bulk Check Votes POST /api/votes/bulk-check Content-Type: application/json { "submissionIds": [1, 2, 3], "wallet": "<WALLET>" } Max 50. Returns { [submissionId]: { hasVoted, voteType } }.
Get Watchlist GET /api/watchlist/:wallet Add to Watchlist POST /api/watchlist Content-Type: application/json { "wallet": "<WALLET>", "mint": "<MINT>" } Max 100 tokens per wallet. Remove from Watchlist DELETE /api/watchlist Content-Type: application/json { "wallet": "<WALLET>", "mint": "<MINT>" } Check if Token in Watchlist POST /api/watchlist/check Content-Type: application/json { "wallet": "<WALLET>", "mint": "<MINT>" }
EndpointDescriptionGET /healthBasic health checkGET /health/detailedFull dependency status (DB, RPC, cache, APIs)GET /health/readyReadiness probeGET /health/liveLiveness probeGET /api/statsCache and database statisticsGET /api/announcements/activeActive site announcements
All errors follow this format: { "error": "User-facing message", "code": "ERROR_CODE", "requestId": "trace-id", "timestamp": "2026-02-26T12:00:00Z" } CodeMeaning400Bad request (invalid parameters)401Missing or invalid API key403Access denied (revoked key, insufficient holder balance)404Resource not found409Conflict (duplicate submission, wallet already has key)429Rate limit exceeded (check Retry-After header)503Service temporarily unavailable
Valid Solana addresses are base58-encoded, 43-44 characters, using characters 1-9 A-H J-N P-Z a-k m-z (no 0, I, O, l).
For any token with mint address <MINT>: OpenDex token page: https://opendex.online/token.html?mint=<MINT> Solscan: https://solscan.io/token/<MINT> Jupiter swap: https://jup.ag/swap/SOL-<MINT> Raydium swap: https://raydium.io/swap/?outputMint=<MINT>
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.