Strategy MoltBot Skill
The Strategy MoltBot is responsible for proposing structured trade intents based on finalized data snapshots. It evaluates market conditions, liquidity, and risk policies to decide whether to propose a trade or hold.
Input
The skill accepts a propose_intent task with the following schema:
json
{
"taskType": "propose_intent",
"fundId": "string",
"roomId": "string",
"epochId": "number",
"snapshot": {
"snapshotHash": "string",
"finalized": "boolean",
"claimCount": "number"
},
"marketState": {
"network": "number",
"nadfunCurveState": "object",
"liquidity": "object",
"volatility": "object"
},
"riskPolicy": {
"maxNotional": "string",
"maxSlippageBps": "number",
"allowlistTokens": ["string"],
"allowlistVenues": ["string"]
}
}
Example Input
json
{
"taskType": "propose_intent",
"fundId": "fund-001",
"roomId": "telegram-room-abc",
"epochId": 12,
"snapshot": {
"snapshotHash": "0xabc123...",
"finalized": true,
"claimCount": 19
},
"marketState": {
"network": 10143,
"nadfunCurveState": {},
"liquidity": {},
"volatility": {}
},
"riskPolicy": {
"maxNotional": "1000",
"maxSlippageBps": 80,
"allowlistTokens": ["0xtoken1...", "0xtoken2..."],
"allowlistVenues": ["NadFun", "UniswapV3"]
}
}
Output
The skill returns either a PROPOSE or HOLD decision.
PROPOSE Decision
Returned when market conditions meet the risk policy and a profitable trade is identified.
json
{
"status": "OK",
"taskType": "propose_intent",
"fundId": "string",
"epochId": "number",
"decision": "PROPOSE",
"intent": {
"intentVersion": "V1",
"fundId": "string",
"roomId": "string",
"epochId": "number",
"vault": "string",
"action": "BUY | SELL",
"tokenIn": "string",
"tokenOut": "string",
"amountIn": "string",
"minAmountOut": "string",
"deadline": "number",
"maxSlippageBps": "number",
"snapshotHash": "string"
},
"reason": "string",
"riskChecks": {
"allowlistPass": "boolean",
"notionalPass": "boolean",
"slippagePass": "boolean",
"deadlinePass": "boolean"
},
"confidence": "number",
"assumptions": ["string"]
}
HOLD Decision
Returned when no trade is proposed due to risk constraints or market conditions.
json
{
"status": "OK",
"taskType": "propose_intent",
"fundId": "string",
"roomId": "string",
"epochId": "number",
"decision": "HOLD",
"reason": "string",
"confidence": "number",
"assumptions": ["string"]
}
Rules
- •Finality Requirement: Do NOT propose an intent unless
snapshot.finalizedistrue. - •Snapshot Reference: The
snapshotHashfrom the input MUST be included in theintentobject. - •Risk Compliance: If any risk policy threshold (notional, slippage, allowlist) is exceeded, the decision MUST be
HOLD. - •NadFun Specifics: Evaluate liquidity, slippage, and bonding curve status (pre/post graduation) separately for NadFun tokens.
- •Proposal Only: Assume the agent has proposal rights only, not direct execution rights.
- •Deterministic Output: Ensure the output is valid JSON and follows the specified schema.