diff --git a/skills/sorin-skill/.claude-plugin/plugin.json b/skills/sorin-skill/.claude-plugin/plugin.json new file mode 100644 index 000000000..da8a3b785 --- /dev/null +++ b/skills/sorin-skill/.claude-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "sorin-skill", + "description": "Answer DeFi questions about tokens, pools, chains, protocols, and projects using Sahara's Sorin DeFi AI Services Gateway", + "version": "1.0.0", + "author": { + "name": "Sahara AI" + }, + "homepage": "https://github.com/SaharaLabsAI/skills/tree/main/sorin-skill", + "repository": "https://github.com/SaharaLabsAI/skills", + "license": "MIT", + "keywords": ["defi", "crypto", "analytics", "tokens", "yield"] +} \ No newline at end of file diff --git a/skills/sorin-skill/LICENSE b/skills/sorin-skill/LICENSE new file mode 100644 index 000000000..d06e587d1 --- /dev/null +++ b/skills/sorin-skill/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Sahara AI + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/skills/sorin-skill/README.md b/skills/sorin-skill/README.md new file mode 100644 index 000000000..42b77be80 --- /dev/null +++ b/skills/sorin-skill/README.md @@ -0,0 +1,74 @@ +

+ Sorin Skill banner +

+ +# Sorin Skill + +Run your agent with Sorin. + +`sorin-skill` helps an agent answer DeFi questions about tokens, pools, chains, protocols, and projects using Sahara's DeFi AI Services Gateway. It detects user intent, calls the most relevant endpoint, and returns concise, data-backed analysis. + +## Quick Start + +1. **Get a Sorin API key** + + The easiest path is the Sorin setup page: + + [https://tools.saharaai.com/sorin-skills/](https://tools.saharaai.com/sorin-skills/) + +2. **Install the skill** + + ```bash + npx skills add https://github.com/SaharaLabsAI/skills/tree/main/sorin-skill + ``` + +3. **Expose your API key to the runtime** + + Add `DEFI_TOOLS_API_KEY` to the environment used by your agent runtime. + + ```bash + # zsh (macOS default) + echo 'export DEFI_TOOLS_API_KEY="your_api_key_here"' >> ~/.zshrc + source ~/.zshrc + ``` + + ```bash + # bash + echo 'export DEFI_TOOLS_API_KEY="your_api_key_here"' >> ~/.bashrc + source ~/.bashrc + ``` + +4. **Restart your agent service** + + To make sure your agent picks up the new skill & environment variable. + +## OpenClaw Setup + +If you manage environment variables through OpenClaw instead of your shell: + +1. Open **Config** from the left sidebar. +2. Switch to the `Environment` tab. +3. Add `DEFI_TOOLS_API_KEY` with your Sorin API key as the value. +4. Save and restart the service. + +## What This Skill Covers + +- Token analysis: fundamentals, price structure, holders, and market context +- Pool analysis: yield discovery, staking opportunities, and pool comparison +- Chain analysis: DEX volume trends, TVL changes, and protocol dominance +- Protocol analysis: TVL, fees, revenue, and capital flow +- Project analysis: market outlook, valuation narrative, and sentiment + +## Example Prompts + +- "Analyze this token's current risk and opportunity profile." +- "Compare the yield and risk of these two pools." +- "What are the key metrics for this protocol on Arbitrum?" +- "Which ETH staking pools look strongest right now?" +- "How has Ethereum DEX activity changed recently?" + +## Troubleshooting + +- `401` or auth errors: confirm `DEFI_TOOLS_API_KEY` is set in the same environment as the runtime. +- The skill does not pick up the key: restart the agent service after adding the environment variable. +- You lost the API key value: generate a new one, since the original is only shown once. \ No newline at end of file diff --git a/skills/sorin-skill/SKILL.md b/skills/sorin-skill/SKILL.md new file mode 100644 index 000000000..2bb351fd7 --- /dev/null +++ b/skills/sorin-skill/SKILL.md @@ -0,0 +1,166 @@ +--- +name: sorin-skill +description: Use when the user asks crypto-related questions about a token, pool, chain, protocol, or project and the agent should answer with Sorin's DeFi gateway using clear, data-backed analysis. +version: "1.0.0" +author: Sahara AI +tags: + - defi + - crypto + - analytics + - tokens + - yield +--- + +# Sorin Skill + +## Overview + +Sorin Skill helps answer crypto-related questions about tokens, pools, chains, protocols, and projects through Sahara's Sorin DeFi AI Services Gateway. +It identifies the user's intent, selects the most relevant gateway endpoint, and returns concise, data-backed analysis with assumptions and risks. + +## Gateway + +- Base URL: `https://defi-tools-proxy.saharaa.info` +- API key env var: `DEFI_TOOLS_API_KEY` +- Auth header: `Authorization: Bearer ${DEFI_TOOLS_API_KEY}` +- Accept header: `accept: text/plain` + +Default request template: + +```bash +GET https://defi-tools-proxy.saharaa.info/? +Headers: +accept: text/plain +Authorization: Bearer ${DEFI_TOOLS_API_KEY} +``` + +Pool analysis example: + +```bash +GET https://defi-tools-proxy.saharaa.info/pool/analysis?chain=Ethereum +Headers: +accept: text/plain +Authorization: Bearer ${DEFI_TOOLS_API_KEY} +``` + +## Quick Start + +1. Run `sorin-skill quickstart`. +2. Verify `DEFI_TOOLS_API_KEY` is set in the agent runtime. +3. Check gateway connectivity using the pool analysis example. +4. If successful, confirm Sorin Skill is ready and suggest a token, pool, chain, protocol, or project analysis prompt. +5. If failed, return the gateway status and exact error message. + +## Intention Routing + +1. Detect user intention from natural language. +2. Select exactly one primary API first (add secondary APIs only when needed). +3. Validate required inputs. If missing, ask only the minimum follow-up question. +4. Call API and parse `success`, `data`, `error`. + +## Intention -> API Mapping + +### 1) Token fundamentals / price / holders / technicals + +- API: `tokenTool` +- Use when: user asks token market analysis (macro liquidity + micro market structure). +- Input: + - `token_symbol` (required): token symbol, e.g. `BTC`, `ETH` + - `quote_currency` (optional, default `USDT`): quote currency for the pair +- Request: + +```bash +GET https://defi-tools-proxy.saharaa.info/token/analysis?token_symbol=ETH"e_currency=USDT +Headers: +accept: text/plain +Authorization: Bearer ${DEFI_TOOLS_API_KEY} +``` + +### 2) Yield/staking pool discovery and scoring + +- API: `poolTool` +- Use when: user asks where to stake, best APY pools, pool comparison, TVL/APY trends. +- Input (all optional filters): + - `chain` (optional): chain id string, e.g. `1`, `56` + - `project` (optional): project slug, e.g. `lido`, `aave-v3` + - `protocol` (e.g. `lido`, `aave-v3`) + - `token_symbol` (e.g. `ETH`, `USDC`) + - `pool_id` (optional): unique pool identifier + - `pool_category` (optional): pool category filter +- Request: + +```bash +GET https://defi-tools-proxy.saharaa.info/pool/analysis?chain=Ethereum&protocol=lido&token_symbol=ETH +Headers: +accept: text/plain +Authorization: Bearer ${DEFI_TOOLS_API_KEY} +``` + +### 3) Chain-level DEX and TVL landscape + +- API: `chainTool` +- Use when: user asks chain DEX volume trends, TVL changes, protocol dominance on a chain. +- Input (optional, provide one when possible): + - `chainId` (integer): chain id, e.g. `1` + - `chainName` (string): chain name, e.g. `Ethereum` +- Request: + +```bash +GET https://defi-tools-proxy.saharaa.info/chain/analysis?chainName=Ethereum +Headers: +accept: text/plain +Authorization: Bearer ${DEFI_TOOLS_API_KEY} +``` + +### 4) Protocol-level financial analysis + +- API: `protocolTool` +- Use when: user asks protocol TVL/fees/revenue/capital flow and comprehensive metrics. +- Request: + +```bash +GET https://defi-tools-proxy.saharaa.info/protocol/analysis?protocol=aave +Headers: +accept: text/plain +Authorization: Bearer ${DEFI_TOOLS_API_KEY} +``` + +### 5) Prediction market and project outlook + +- API: `projectTool` +- Use when: user asks project odds, FDV expectations, short/long-term target prices, market sentiment for a project. +- Input: + - `projectName` (required): project name, e.g. `berachain` +- Request: + +```bash +GET https://defi-tools-proxy.saharaa.info/project/analysis?projectName=berachain +Headers: +accept: text/plain +Authorization: Bearer ${DEFI_TOOLS_API_KEY} +``` + +## Output Style for End Users + +Use this response structure: + +1. **What I queried**: API name and key parameters. +2. **Key findings**: 3-5 bullets with metrics. +3. **Interpretation**: trend/risk/opportunity in plain language. +4. **Actionable next step**: one concrete follow-up. +5. **Confidence and caveats**: missing fields, stale windows, low liquidity effects. + +## Decision Heuristics + +- If question is asset-specific, start with `tokenTool`. +- If question is yield-focused, start with `poolTool`. +- If question is chain ecosystem-focused, use `chainTool`. +- If question is protocol financial health-focused, use `protocolTool`. +- If question is project narrative or valuation-focused, use `projectTool`. + +## Safety Rules + +- Never invent prices, holders, APY, TVL, or tx outcomes. +- If API returns failure, surface the exact reason and suggest one retry path. +- Ask follow-up questions only for missing required parameters. +- Keep chain IDs explicit when ambiguity exists. diff --git a/skills/sorin-skill/SUMMARY.md b/skills/sorin-skill/SUMMARY.md new file mode 100644 index 000000000..756708b79 --- /dev/null +++ b/skills/sorin-skill/SUMMARY.md @@ -0,0 +1,17 @@ +## Overview + +Sorin Skill routes DeFi questions about tokens, pools, chains, protocols, and projects to Sahara's Sorin DeFi AI Services Gateway. It helps agents choose the right analysis endpoint, call it with explicit parameters, and summarize the returned data with assumptions and risks. + +## Prerequisites + +- `DEFI_TOOLS_API_KEY` set in the environment. +- Network access to `https://defi-tools-proxy.saharaa.info`. +- Required user inputs such as token symbol, protocol name, project name, chain name, or pool filters. + +## Quick Start + +1. Run `sorin-skill quickstart` to verify `DEFI_TOOLS_API_KEY` is set and the gateway is reachable. +2. Ask a token question using a symbol such as `ETH` or `BTC`. +3. For yield or staking analysis, provide a chain, protocol, token symbol, or pool ID when available. +4. For protocol or project analysis, provide the protocol or project name. +5. Review the returned findings, assumptions, risks, next steps, and caveats. diff --git a/skills/sorin-skill/assets/sorin-skill-banner.png b/skills/sorin-skill/assets/sorin-skill-banner.png new file mode 100644 index 000000000..3375e9fc3 Binary files /dev/null and b/skills/sorin-skill/assets/sorin-skill-banner.png differ diff --git a/skills/sorin-skill/plugin.yaml b/skills/sorin-skill/plugin.yaml new file mode 100644 index 000000000..4266232ad --- /dev/null +++ b/skills/sorin-skill/plugin.yaml @@ -0,0 +1,22 @@ +schema_version: 1 +name: sorin-skill +version: "1.0.0" +description: "Answer DeFi questions about tokens, pools, chains, protocols, and projects using Sahara's Sorin DeFi AI Services Gateway" +author: + name: "Sahara AI" + github: "SaharaLabsAI" +license: MIT +category: analytics +tags: + - defi + - crypto + - analytics + - tokens + - yield + +components: + skill: + dir: "." + +api_calls: + - defi-tools-proxy.saharaa.info