Why pay for this?
This recipe turns roughly 30 separate tool operations into one paid endpoint call and saves about ~436k tokens saved.
Details + timeseries + news + unlocks + X search -> conviction or thesis brief
Use Messari context, unlocks, and twit.sh narrative checks to pressure-test an explicit token thesis or conviction question with citations.
Endpoint: /v1/recipes/messari-token-conviction-brief/run
Capabilities: messari, market-intel, asset-research, token-conviction, thesis-check, crypto-news, token-unlocks, x-radar
This recipe turns roughly 30 separate tool operations into one paid endpoint call and saves about ~436k tokens saved.
Details + timeseries + news + unlocks + X search -> conviction or thesis brief
Name: 402.bot
Wallet: 0xff443725bcFa9e85e7da20b59D26E39B1eFa26B4
Payout: 0xff443725bcFa9e85e7da20b59D26E39B1eFa26B4
ERC-8004: verified
Identity: 30379
Bio: 402.bot managed workflow marketplace recipes.
ERC-8004 reputation: 0.0
Creator score: 21
Success 30d: 0%
Refund 30d: 0%
Paid runs: 0
Creator recipes: 1
Last run: No recent runs
Use 402.bot as the bounded execution and briefing layer for Messari asset fundamentals, news, unlocks, and twit.sh narrative checks.
Canonical guide: https://402.bot/recipes/messari-asset-intel-brief
Public sources: messari_asset_details, messari_asset_timeseries, messari_news_feed, messari_token_unlocks, messari_stablecoins, messari_funding_rounds, messari_x_users, messari_x_user_details, messari_x_users_timeseries, twitsh_tweet_search
Notes: Use the provider page for identity and capability context, and the recipe page for runnable workflows. Public sources stay bounded to normalized read shapes instead of becoming a generic Messari proxy. The simple Messari recipes are designed to save tokens by flattening paid Messari data into machine-friendly snapshots before you reach for longer AI synthesis flows. This recipe cross-checks bounded Messari market context against fresh twit.sh topic search before producing a token brief.
Source: Messari Asset Details
Step id: asset
Source: Messari Asset Timeseries
Step id: timeseries
Source: Messari News Feed
Step id: news
Source: Messari Token Unlocks
Step id: unlocks
Source: Twitsh Tweet Search
Step id: recent
Source: Twitsh Tweet Search
Step id: popular
Source: Transform
Step id: boundedEvidence
Source: Google Gemini Flash Structured
Step id: structured
Source: Transform
Step id: finalize
| Run | Status | Trigger | Queued |
|---|---|---|---|
| No recent runs recorded yet. Runs appear here after the first paid execution. | |||
{
"id": "asset",
"kind": "fetch_transform",
"title": "Fetch Messari asset details",
"request": {
"params": {
"assetId": "{{ $.input.assetId }}"
},
"sourceId": "messari_asset_details",
"deliveryFormat": "json"
}
}
{
"id": "timeseries",
"kind": "fetch_transform",
"title": "Fetch Messari timeseries",
"request": {
"params": {
"to": "{{ $.input.to }}",
"from": "{{ $.input.from }}",
"limit": 30,
"assetId": "{{ $.input.assetId }}",
"metricKey": "{{ $.input.metricKey }}"
},
"sourceId": "messari_asset_timeseries",
"deliveryFormat": "json"
}
}
{
"id": "news",
"kind": "fetch_transform",
"title": "Fetch Messari news",
"request": {
"params": {
"limit": "{{ $.input.newsLimit }}",
"assetKeys": [
"{{ $.input.assetId }}",
"{{ $.stepsById.asset.output.symbol }}"
],
"sortOrder": "desc"
},
"sourceId": "messari_news_feed",
"deliveryFormat": "json"
}
}
{
"id": "unlocks",
"kind": "fetch_transform",
"title": "Fetch Messari token unlocks",
"request": {
"params": {
"limit": "{{ $.input.unlockLimit }}",
"assetId": "{{ $.input.assetId }}"
},
"sourceId": "messari_token_unlocks",
"deliveryFormat": "json"
}
}
{
"id": "recent",
"kind": "fetch_transform",
"title": "Search recent X posts",
"request": {
"params": {
"phrase": "{{ $.input.assetId }}"
},
"sourceId": "twitsh_tweet_search",
"deliveryFormat": "json"
}
}
{
"id": "popular",
"kind": "fetch_transform",
"title": "Search higher-signal X posts",
"request": {
"params": {
"phrase": "{{ $.input.assetId }}",
"minLikes": 20
},
"sourceId": "twitsh_tweet_search",
"deliveryFormat": "json"
}
}
{
"id": "boundedEvidence",
"kind": "transform",
"title": "Prepare bounded conviction evidence",
"request": {
"mode": "clean_json",
"source": {
"kind": "json",
"value": {
"news": {
"count": "{{ $.stepsById.news.output.count }}",
"items": [
{
"url": "{{ $.stepsById.news.output.items[0].url }}",
"title": "{{ $.stepsById.news.output.items[0].title }}",
"source": "{{ $.stepsById.news.output.items[0].source }}",
"summary": "{{ $.stepsById.news.output.items[0].summary }}",
"publishedAt": "{{ $.stepsById.news.output.items[0].publishedAt }}"
},
{
"url": "{{ $.stepsById.news.output.items[1].url }}",
"title": "{{ $.stepsById.news.output.items[1].title }}",
"source": "{{ $.stepsById.news.output.items[1].source }}",
"summary": "{{ $.stepsById.news.output.items[1].summary }}",
"publishedAt": "{{ $.stepsById.news.output.items[1].publishedAt }}"
}
]
},
"asset": {
"name": "{{ $.stepsById.asset.output.name }}",
"tags": "{{ $.stepsById.asset.output.tags }}",
"symbol": "{{ $.stepsById.asset.output.symbol }}",
"assetId": "{{ $.stepsById.asset.output.assetId }}",
"metrics": {
"priceUsd": "{{ $.stepsById.asset.output.metrics.priceUsd }}",
"marketCap": "{{ $.stepsById.asset.output.metrics.marketCap }}"
},
"summary": "{{ $.stepsById.asset.output.summary }}"
},
"unlocks": {
"count": "{{ $.stepsById.unlocks.output.count }}",
"items": [
{
"category": "{{ $.stepsById.unlocks.output.items[0].category }}",
"valueUsd": "{{ $.stepsById.unlocks.output.items[0].valueUsd }}",
"supplyPct": "{{ $.stepsById.unlocks.output.items[0].supplyPct }}",
"unlockDate": "{{ $.stepsById.unlocks.output.items[0].unlockDate }}"
}
],
"assetId": "{{ $.stepsById.unlocks.output.assetId }}"
},
"timeseries": {
"count": "{{ $.stepsById.timeseries.output.count }}",
"assetId": "{{ $.stepsById.timeseries.output.assetId }}",
"frequency": "{{ $.stepsById.timeseries.output.frequency }}",
"metricKey": "{{ $.stepsById.timeseries.output.metricKey }}",
"recentPoints": [
{
"value": "{{ $.stepsById.timeseries.output.points[0].value }}",
"timestamp": "{{ $.stepsById.timeseries.output.points[0].timestamp }}"
},
{
"value": "{{ $.stepsById.timeseries.output.points[1].value }}",
"timestamp": "{{ $.stepsById.timeseries.output.points[1].timestamp }}"
},
{
"value": "{{ $.stepsById.timeseries.output.points[2].value }}",
"timestamp": "{{ $.stepsById.timeseries.output.points[2].timestamp }}"
}
]
},
"recentResults": {
"count": "{{ $.stepsById.recent.output.count }}",
"tweets": [
{
"url": "{{ $.stepsById.recent.output.tweets[0].url }}",
"text": "{{ $.stepsById.recent.output.tweets[0].text }}"
}
]
},
"operatorPrompt": {
"thesis": "{{ $.input.thesis }}",
"question": "{{ $.input.question }}"
},
"popularResults": {
"count": "{{ $.stepsById.popular.output.count }}",
"tweets": [
{
"url": "{{ $.stepsById.popular.output.tweets[0].url }}",
"text": "{{ $.stepsById.popular.output.tweets[0].text }}"
}
]
}
}
}
}
}
{
"id": "structured",
"kind": "fetch_transform",
"title": "Build conviction brief",
"request": {
"params": {
"input": {
"news": "{{ $.stepsById.boundedEvidence.output.data.news }}",
"asset": "{{ $.stepsById.boundedEvidence.output.data.asset }}",
"unlocks": "{{ $.stepsById.boundedEvidence.output.data.unlocks }}",
"timeseries": "{{ $.stepsById.boundedEvidence.output.data.timeseries }}",
"recentResults": "{{ $.stepsById.boundedEvidence.output.data.recentResults }}",
"operatorPrompt": "{{ $.stepsById.boundedEvidence.output.data.operatorPrompt }}",
"popularResults": "{{ $.stepsById.boundedEvidence.output.data.popularResults }}"
},
"prompt": "Using only the supplied bounded token evidence bundle, evaluate the operator question or thesis when one is provided. This recipe is for explicit conviction checks, not broad market overviews. Prefer Messari asset context and recent news as the core evidence, and use X only when it clearly confirms or challenges that evidence. Return a short conviction summary, a simple price-trend label, up to two citations, and at most two watch items.",
"responseSchema": {
"type": "object",
"required": [
"assetId",
"latestValue",
"convictionLevel",
"convictionSummary",
"priceTrend",
"citations",
"watchItems"
],
"properties": {
"assetId": {
"type": "string"
},
"citations": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"url"
],
"properties": {
"url": {
"type": "string"
},
"label": {
"type": "string",
"maxLength": 120
},
"source": {
"type": "string",
"maxLength": 32
}
},
"additionalProperties": false
},
"maxItems": 2
},
"priceTrend": {
"enum": [
"up",
"down",
"flat",
"mixed"
],
"type": "string"
},
"watchItems": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 2,
"description": "Highest-value watch items."
},
"latestValue": {
"type": "number"
},
"convictionLevel": {
"enum": [
"supportive",
"mixed",
"cautious"
],
"type": "string"
},
"convictionSummary": {
"type": "string",
"maxLength": 280
}
},
"additionalProperties": false
},
"systemInstruction": "You are preparing a compact token conviction memo. Stay grounded in the supplied JSON, avoid price targets, avoid tangential social chatter, and never invent citations. If an explicit thesis is present, say whether the evidence looks supportive, mixed, or cautious rather than drifting into a generic pulse brief. latestValue should reflect asset.metrics.priceUsd when available."
},
"sourceId": "google_gemini_flash_structured",
"deliveryFormat": "json"
}
}
{
"id": "finalize",
"kind": "transform",
"title": "Attach generated timestamp",
"request": {
"mode": "clean_json",
"source": {
"kind": "json",
"value": {
"assetId": "{{ $.stepsById.structured.output.output.assetId }}",
"citations": "{{ $.stepsById.structured.output.output.citations }}",
"priceTrend": "{{ $.stepsById.structured.output.output.priceTrend }}",
"watchItems": "{{ $.stepsById.structured.output.output.watchItems }}",
"generatedAt": "{{ $.run.startedAt }}",
"latestValue": "{{ $.stepsById.structured.output.output.latestValue }}",
"convictionLevel": "{{ $.stepsById.structured.output.output.convictionLevel }}",
"convictionSummary": "{{ $.stepsById.structured.output.output.convictionSummary }}"
}
}
}
}