skynet-score
Installation
SKILL.md
Skynet Score
Use {skillDir}/scripts/skynet_score.py to inspect project score search results with the CertiK public project API.
Use this skill when the user wants to look up a blockchain project's CertiK Skynet score or needs help integrating the public project score API.
When to use this skill
- Search projects by keyword or approximate project name
- Return a project's overall score, tier, and last update time
- Explain the score breakdown fields
- Show how to query the public endpoint from code or
curl
Workflow
- Extract the project keyword from the user request.
- Prefer the bundled Python script for execution.
- If Python is unavailable, use the documented
curlfallback. - If multiple projects match, list the best candidates instead of guessing.
- When a clear match exists, summarize:
- project name
- overall Skynet score
- tier
- last updated time
- score breakdown fields that matter to the user's question
- If the user asks for implementation details, provide a minimal request example and note rate limits.
Execution
Prefer Python first:
python3 scripts/skynet_score.py --keyword "uniswap"
If Python is unavailable, use curl:
curl -sG "https://open.api.certik.com/projects" \
-H "Accept: application/json, text/plain, */*" \
--data-urlencode "keyword=uniswap"
Output guidance
- Do not invent a score when no project match is returned.
- If there are several close matches, ask the user to confirm which project they mean.
- When explaining the result, keep the overall score first and the component scores second.
- If the user asks for raw payloads or integration help, include the response shape below.
Public API
- Base URL:
https://open.api.certik.com - Endpoint:
GET /projects - Query parameter:
keyword(required)
Example:
curl -sG "https://open.api.certik.com/projects" \
-H "Accept: application/json, text/plain, */*" \
--data-urlencode "keyword=uniswap"
Important score fields:
score: overall Skynet scorescoreCodeSecurity: code security scorescoreCommunity: community scorescoreFundamental: fundamentals scorescoreGovernance: governance scorescoreMarket: market scorescoreOperation: operations scoretier: score tierupdatedAt: last update time
Limits and errors
- Rate limit: 50 requests per 60-second window per IP
- Headers:
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-ResetRetry-Afteron429
Error payload:
{
"error": "Human-readable error message"
}
Common status codes:
400: missing or invalid parameters429: rate limit exceeded500: server-side failure
Related skills