Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

RiskState — Risk Governor for Crypto Trading Agents

v1.2.2

Deterministic risk governance API for autonomous crypto trading agents. Returns position limits, allowed actions, and policy constraints from 30+ real-time s...

0· 148·0 current·0 all-time
byLikido@likidodefi

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for likidodefi/riskstate.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "RiskState — Risk Governor for Crypto Trading Agents" (likidodefi/riskstate) from ClawHub.
Skill page: https://clawhub.ai/likidodefi/riskstate
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install riskstate

ClawHub CLI

Package manager switcher

npx clawhub@latest install riskstate
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The skill's name, README, docs, and SKILL.md consistently describe a risk-governor API for crypto trading agents — requiring a single API key and returning permissioning data. That capability legitimately needs an API endpoint and key. However, the registry metadata at the top lists "Required env vars: none" while the SKILL.md explicitly declares env: RISKSTATE_API_KEY and shows authentication via a Bearer token. This metadata mismatch is an incoherence (likely a packaging/metadata error) and should be corrected/confirmed.
Instruction Scope
The runtime instructions are narrow and consistent with the stated purpose: POST JSON to https://riskstate.netlify.app/v1/risk-state with Authorization: Bearer $RISKSTATE_API_KEY. Optional wallet parameter is relevant to DeFi monitoring. The SKILL.md does not instruct the agent to read unrelated files, other credentials, or system secrets.
Install Mechanism
This is an instruction-only skill (no install spec, no code files to execute). That is lower risk because nothing is written or executed locally by the skill itself.
Credentials
The service needs one credential (an API key) which is proportionate to its function. The concern is the registry metadata failing to list this required env var — users or the platform could miss prompting for the key or mis-handle permission scopes. Also note the docs reference an owner/admin key and external `rs_live_` keys; users should ensure they only supply external keys with limited scope.
Persistence & Privilege
The skill does not request always:true and has no install-time persistence steps. It does not ask to modify other skills or system-wide settings in the provided materials.
What to consider before installing
What to check before installing or enabling this skill: - Verify the API host and ownership: SKILL.md points at https://riskstate.netlify.app for the API while the homepage is https://riskstate.ai. Confirm that riskstate.netlify.app is an intentional API host for RiskState (e.g., check the official website, GitHub repo, and maintainers) before sending an API key. - Provide a limited-scope key: use an "external"/read-only key (rs_live_ type) if possible, and avoid giving any owner/admin keys to the skill. Do not hardcode keys into source; use environment variables as recommended. - Correct the metadata gap: the registry metadata claims no required env vars, but SKILL.md requires RISKSTATE_API_KEY. Ask the publisher or registry to update the metadata so the platform can surface the prompt for the API key and label required permissions correctly. - Test with minimal data and monitoring: try one-off calls and verify network traffic (outbound destination, IPs, TLS certificate) and response shape before enabling the skill for autonomous use. Monitor API usage and rotate keys if anything looks unexpected. - Treat wallet parameter as sensitive: only supply wallet addresses when you intend on DeFi monitoring; the wallet parameter is relevant but it can expose on-chain linkage for that key. If the publisher provides a clarified package (metadata listing RISKSTATE_API_KEY) and an expected API host matching their official domain or a documented, trusted endpoint (and you can confirm the GitHub/org), this would reduce the concern. Conversely, unexpected hosts or requests for broader credentials would increase risk.

Like a lobster shell, security has layers — review code before you run it.

latestvk977zcvdp5z11qgqnhzkn7gv7h83k7ns
148downloads
0stars
4versions
Updated 1mo ago
v1.2.2
MIT-0

RiskState — Risk Governor for Crypto Trading Agents

What it does

Returns operational risk permissions for crypto trading. A deterministic policy engine computes how much exposure is allowed based on 30+ real-time signals across macro, on-chain, derivatives, and DeFi health.

The response tells you:

  • max_size_fraction: Maximum position size as fraction of portfolio (0.0–1.0)
  • allowed_actions / blocked_actions: What the agent MAY and MUST NOT do (enum tokens)
  • risk_flags: Structural blockers (hard stop) vs contextual risks (reduce conviction)
  • binding_constraint: Which cap is limiting and why
  • policy_level: 1–5 summary label (informational — use exposure_policy for enforcement)

What it does NOT do

  • No trade signals, no entry/exit prices, no predictions
  • No portfolio allocation advice
  • No order execution or routing
  • No historical data or backtesting

This is a risk governor, not a trading oracle.

When to call

  • Before opening or sizing positions — check permissions first
  • Periodically during holds — every 5 min for active trading, every 4h for holding
  • After significant market moves — cache invalidates after 60s (ttl_seconds in response)

Authentication

Request a free API key at https://riskstate.ai (email only). You will receive a key with the rs_live_ prefix. Set it as the RISKSTATE_API_KEY environment variable and pass it as a Bearer token:

Authorization: Bearer $RISKSTATE_API_KEY

Binding precedence

When consuming the response, agents MUST evaluate fields in this order:

  1. risk_flags.structural_blockers — if non-empty, ABORT new entries
  2. exposure_policy.blocked_actions — actions the agent MUST NOT take
  3. exposure_policy.reduce_recommended — reduce exposure if true
  4. exposure_policy.max_size_fraction — maximum position size
  5. exposure_policy.max_leverage — maximum leverage allowed
  6. exposure_policy.direction_bias — preferred trade direction
  7. policy_level — informational summary only, do not use for enforcement

Decision rules by policy level

policy_levelSummaryKey constraints
1 (BLOCK Survival)No new positionsblocked_actions: [NEW_TRADES, ...], max_leverage: "0x"
2 (BLOCK Defensive)Wait or hedge onlyblocked_actions: [AGGRESSIVE_LONG, ...], max_leverage: "1x"
3 (CAUTIOUS)DCA with R:R >2:1blocked_actions: [LEVERAGE, ALL_IN, ...], max_leverage: "1x"
4 (GREEN Selective)Trade with confirmationmax_leverage: "1.5x"
5 (GREEN Expansion)Full operationsmax_leverage: "2x"

policy_level is a convenience label. Always check exposure_policy fields for actual constraints.

Failure modes

ConditionAgent behavior
stale_fields contains core indicators (price, funding, rsi)Downgrade conviction. Data integrity compromised.
data_quality_score < 70Treat as degraded. Reduce position sizes by 50%.
data_quality_score < 50Treat as unreliable. Do not open new positions.
confidence_score < 0.5Signals conflict heavily. Prefer WAIT over action.
HTTP 500 or timeoutAssume worst case (BLOCK). Retry after 60s.
cached: true + stale_fields non-emptyRe-request after cache TTL (60s) for fresh data.

Security

API host: All API calls go to https://riskstate.netlify.app (the /v1/* endpoints). The https://riskstate.ai domain is the landing page only — no API endpoints are served there.

API keys: All keys have the rs_live_ prefix and are rate-limited to 60 req/min. Store your key in the RISKSTATE_API_KEY environment variable. Do not hardcode keys in source code.

Example requests

Minimal (BTC)

curl -X POST https://riskstate.netlify.app/v1/risk-state \
  -H "Authorization: Bearer $RISKSTATE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"asset": "BTC"}'

Detailed (with scoring breakdown)

curl -X POST https://riskstate.netlify.app/v1/risk-state \
  -H "Authorization: Bearer $RISKSTATE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"asset": "BTC", "include_details": true}'

DeFi monitoring (with wallet)

curl -X POST https://riskstate.netlify.app/v1/risk-state \
  -H "Authorization: Bearer $RISKSTATE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"asset": "ETH", "wallet": "0xYOUR_WALLET_ADDRESS", "include_details": true}'

Example response (minimal)

{
  "exposure_policy": {
    "max_size_fraction": 0.42,
    "leverage_allowed": false,
    "max_leverage": "1x",
    "direction_bias": "LONG_PREFERRED",
    "reduce_recommended": false,
    "allowed_actions": ["DCA", "WAIT", "LIGHT_ACCUMULATION", "RR_GT_2"],
    "blocked_actions": ["LEVERAGE", "AGGRESSIVE_LONG", "ALL_IN"]
  },
  "tactical_state": "LEAN BULL",
  "structural_state": "MID",
  "macro_state": "NEUTRAL",
  "market_regime": "TREND",
  "volatility_regime": "NORMAL",
  "policy_level": 3,
  "confidence_score": 0.72,
  "data_quality_score": 85,
  "binding_constraint": {
    "source": "MACRO",
    "reason": "NEUTRAL × NORMAL",
    "reason_codes": ["MACRO_NEUTRAL", "COUPLING_NORMAL"],
    "cap_value": 0.70
  },
  "risk_flags": {
    "structural_blockers": [],
    "context_risks": ["HIGH_FUNDING"]
  },
  "defi": null,
  "policy_hash": "a1b2c3d4e5f6...",
  "scoring_version": "score_v2",
  "version": "1.2.2",
  "timestamp": "2026-03-13T14:30:00.000Z",
  "asset": "BTC",
  "cached": false,
  "ttl_seconds": 60,
  "stale_fields": []
}

Detailed response

Pass "include_details": true in the request body to receive expanded scoring data (composite subscores, positioning intelligence, whale pressure, trend strength, caps breakdown). All minimal fields are included plus: caps, positioning, volatility, whale_pressure, trend_strength, composite, extreme_scores, macro_detail, data_sources, and core_missing.

See docs/api-v1.md for full API documentation including all field types, ranges, action enums, risk flags reference, and interpretation guide.

Comments

Loading comments...