IMD Researchactive
Starts an IMD research job from a Solana app. The call carries the research query and a capped budget; the receipt returns the job ID and an output hash the app can verify against the published result.
imd.research.v1v1.2.0Ethereumby IMD
Executions · 7d30
Success rate96.6%
Median latency41.1s
Calling apps1
Interface
START_RESEARCH
35–50s to receiptQueue a research job. Budget is reserved up to maxSpend and only the used portion is spent.
Inputs
| query | string | Research prompt. 2,000 characters max. |
| depth | "quick" | "standard" | "deep" | Work tier. Deeper tiers use more budget. |
| budget | decimal string | Upper bound in IMD. Must be ≤ HookCall.maxSpend. |
| tag? | string | Opaque caller tag echoed in the receipt. |
Outputs
| jobId | bytes8 | IMD job identifier. |
| accepted | bool | Whether the job was queued. |
| estimatedSeconds? | uint32 | Queue estimate at acceptance time. |
example payload
{
"query": "Summarise validator client diversity on Solana mainnet, Q3 2026",
"depth": "standard",
"budget": "40",
"tag": "imdhooks:session-77"
}CANCEL_RESEARCH
35–50s to receiptCancel a queued job and release unused budget.
Inputs
| jobId | bytes8 | Job returned by START_RESEARCH. |
Outputs
| refunded | decimal string | Budget released, in IMD. |
example payload
{
"jobId": "0x5c1e09a2d4f7b311"
}Usage
@wormhook/sdkimd-start_research.ts
import { WormHookClient } from "@wormhook/sdk";
const client = new WormHookClient({ network: "devnet", appId: YOUR_APP_ID });
const call = await client.prepareCall({
hookId: "imd.research.v1",
action: "START_RESEARCH",
payload: {
"query": "Summarise validator client diversity on Solana mainnet, Q3 2026",
"depth": "standard",
"budget": "40",
"tag": "imdhooks:session-77"
},
maxSpend: "250", // ≤ per-call cap (250 IMD)
ttl: 900,
});
const execution = await client.simulate(call);
const receipt = await execution.waitForReceipt();Registration
- hook id
- imd.research.v1
- version
- 1.2.0
- destination
- Ethereum
- permissions
- Allowlist
- spend cap
- 250 IMD / call
- author
- IMD0x35167b…3957
Routes
- Solana→Ethereumenabled
- Wormhole 1 → 2 · receipt returns on the same route
Adapter
- kind
- IMD
- contract
- IMDAdapter0xe864ac…8518
IWormHookAdapter.solconceptual
// Conceptual: final interface is defined in phase 2 (CORE_TECH_PLAN.md §Adapters)
interface IWormHookAdapter {
function execute(
bytes32 callId,
bytes calldata payload
) external returns (bytes memory output);
}Source & audit
- repository
- github.com/imd/wormhook-adapters (placeholder)
- commit
- a4c91e0
- audit
- audit planned
Risk notes
- Budget is reserved at execution and settled when the job completes. The receipt reports the reserved-then-spent amount, not a final invoice.
- Output hash commits to the job result, not to its correctness.
- Adapter is upgradeable by the IMD admin key during the pilot (planned: timelock).
Versions
- 1.2.0current2026-09-18Adds optional tag echo in receipt.
- 1.1.02026-08-30CANCEL_RESEARCH action.
- 1.0.02026-08-02Initial registration.
Allowlisted apps
Execution history
latest 10| Status | Call ID | Hook | Route | Created | Latency | Receipt |
|---|---|---|---|---|---|---|
| Pending | 0x39f594…2128#17594 | imd.research.v1START_RESEARCH | SOL→ETH | 8s ago | in flight | pending |
| Success | 0x9aebee…fbce#18291 | imd.research.v1START_RESEARCH | SOL→ETH | 4m ago | 39.7s | ✓ returned |
| Failed | 0xf61e8a…5c55#17599 | imd.research.v1START_RESEARCH | SOL→ETH | 38m ago | 43.0s | failed |
| Success | 0xe6f581…0bc3#17537 | imd.research.v1START_RESEARCH | SOL→ETH | 1h ago | 39.8s | ✓ returned |
| Success | 0x2a2eae…82e5#17519 | imd.research.v1START_RESEARCH | SOL→ETH | 1h ago | 41.6s | ✓ returned |
| Success | 0xb7fcc1…23ae#17425 | imd.research.v1START_RESEARCH | SOL→ETH | 2h ago | 38.9s | ✓ returned |
| Success | 0x08eb54…978c#17560 | imd.research.v1START_RESEARCH | SOL→ETH | 3h ago | 42.7s | ✓ returned |
| Success | 0x1e502b…9eee#17470 | imd.research.v1START_RESEARCH | SOL→ETH | 6h ago | 41.5s | ✓ returned |
| Success | 0xa55a14…8964#17496 | imd.research.v1START_RESEARCH | SOL→ETH | 7h ago | 38.3s | ✓ returned |
| Success | 0x908117…5590#17581 | imd.research.v1START_RESEARCH | SOL→ETH | 7h ago | 40.8s | ✓ returned |
- Pending8s agoimd.research.v1SOL→ETH0x39f59474…8d2128 · #17594in flight
- Success4m agoimd.research.v1SOL→ETH0x9aebeef7…c3fbce · #1829139.7s
- Failed38m agoimd.research.v1SOL→ETH0xf61e8a3c…155c55 · #1759943.0s
- Success1h agoimd.research.v1SOL→ETH0xe6f58176…840bc3 · #1753739.8s
- Success1h agoimd.research.v1SOL→ETH0x2a2eae73…3582e5 · #1751941.6s
- Success2h agoimd.research.v1SOL→ETH0xb7fcc10f…ee23ae · #1742538.9s
- Success3h agoimd.research.v1SOL→ETH0x08eb54ef…5f978c · #1756042.7s
- Success6h agoimd.research.v1SOL→ETH0x1e502be6…a19eee · #1747041.5s
- Success7h agoimd.research.v1SOL→ETH0xa55a14cb…6e8964 · #1749638.3s
- Success7h agoimd.research.v1SOL→ETH0x90811777…a15590 · #1758140.8s