Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.spfunctions/simplefunctions

REMOTE · SIMPLEFUNCTIONS.DEV · 2 COMPONENTS · SCANNED AUG 3

Calibrated world model for AI agents. 40 tools: world state, markets, trading. Kalshi + Polymarket.

+5 this week 65 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security63
Transport & Reachability100
Schema Quality & AI Usability58
  • AI-judged instruction clarity (fair).Partial
  • Tool/resource definitions use about 9728 tokens (~90/item across 108 items; 108 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage95
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 86% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · simplefunctions.dev

# add to Claude Code
claude mcp add --transport http spfunctions-simplefunctions https://simplefunctions.dev/api/mcp/mcp
# ~/.codex/config.toml
[mcp_servers.spfunctions-simplefunctions]
url = "https://simplefunctions.dev/api/mcp/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "spfunctions-simplefunctions": {
      "type": "remote",
      "url": "https://simplefunctions.dev/api/mcp/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add spfunctions-simplefunctions --url https://simplefunctions.dev/api/mcp/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  spfunctions-simplefunctions:
    url: "https://simplefunctions.dev/api/mcp/mcp"
// mcp.json
{
  "mcpServers": {
    "spfunctions-simplefunctions": {
      "type": "http",
      "url": "https://simplefunctions.dev/api/mcp/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +2
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 60

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://simplefunctions.dev/api/mcp/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=*.simplefunctions.dev CN=YR2,O=Let's Encrypt,C=US 30 Jul 2026 28 Oct 2026 RSA 2048 SHA256-RSA 6d7e67683f4273d59b74f537f8cc883bcce
SANs: *.simplefunctions.dev, simplefunctions.dev
CN=YR2,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA 4ebd24947e24d394802d84a52fd5b319
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f
DNSSEC insecure

Validation of simplefunctions.dev. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
dev. present 60074 8 Verified
simplefunctions.dev. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://simplefunctions.dev/api/mcp/mcp Verified 200
http (plaintext) http://simplefunctions.dev/api/mcp/mcp HTTPS enforced 308 https://simplefunctions.dev/api/mcp/mcp
MCP tools — 108 exposed · ~9,728 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
add_position ~136

Record a new position in a thesis for tracking. Use after an intent fills or a manual trade.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
directionstringyesPosition direction
entryPricenumberyesEntry price in cents
externalMarketIdstringyesMarket ticker
marketTitlestringyesHuman-readable market name
rationalestringWhy this position
sizenumberPosition size (contracts)
thesisIdstringyesThesis ID
venuestringyesExchange venue

No output schema declared.

No examples provided.

augment_tree ~73

Advanced: Merge suggested causal tree nodes from evaluations into the tree (append-only).

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
dryRunbooleanPreview without applying (default: false)
thesisIdstringyesThesis ID

No output schema declared.

No examples provided.

batch_markets ~57

Fetch many markets at once by ticker list. Cheaper than calling get_market_detail in a loop.

NameTypeReqDescription
depthnumberOrderbook depth levels (0 = none)
tickersstringyesComma-separated tickers

No output schema declared.

No examples provided.

browse_public_skills ~83

Browse public skills from the community. Free-tier and rate-limited. Filter by category, search, or sort by popularity.

NameTypeReqDescription
categorystringFilter by category: custom, trading, research, monitoring
qstringSearch skills by name/description
sortstringSort order: popular or new (default: new)

No output schema declared.

No examples provided.

cancel_intent ~57

Cancel an active intent. Stops trigger evaluation and prevents execution.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
intentIdstringyesIntent ID to cancel

No output schema declared.

No examples provided.

close_position ~60

Delete a position record from a thesis.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
positionIdstringyesPosition ID
thesisIdstringyesThesis ID

No output schema declared.

No examples provided.

configure_heartbeat ~218

Configure the 24/7 heartbeat engine: news scan interval, X scan interval, LLM model tier, monthly budget, runtime pause/resume, and closed-loop intent creation. Agent can speed up monitoring during high volatility or slow down to save budget.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
closedLoopEntrybooleanEnable/disable closed-loop entry intent creation
closedLoopExitbooleanEnable/disable closed-loop exit intent creation
evalModelTierstringLLM model for evaluations
monthlyBudgetUsdnumberMonthly budget cap in USD (0 = unlimited)
newsIntervalMinnumberNews scan interval in minutes (15-1440, default 240)
pausedbooleanPause/resume heartbeat
thesisIdstringyesThesis ID
xIntervalMinnumberX/social scan interval in minutes (60-1440, default 240)

No output schema declared.

No examples provided.

create_intent ~299

Declare an execution intent: "buy X when condition Y, expire at Z." Intents are the single gateway for all order execution. The local runtime daemon evaluates triggers and executes via user's Kalshi/Polymarket keys.

NameTypeReqDescription
actionstringyesTrade action
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
autoExecutebooleanAuto-execute without later human confirmation. Defaults to false unless explicitly set true.
directionstringyesContract direction
expireAtstringISO timestamp when intent expires (default: +24h)
marketIdstringyesMarket ticker (e.g. KXFEDDEC-25DEC31-T100)
marketTitlestringyesHuman-readable market name
maxPricenumberMax price per contract in cents (1-99). Omit for market order.
rationalestringWhy this trade — logged for audit trail
sourcestringIntent source: agent, manual, idea
sourceIdstringSource reference (idea ID, thesis ID, etc.)
targetQuantitynumberyesNumber of contracts
triggerPricenumberPrice trigger threshold in cents (for price_below/price_above)
triggerTypestringWhen to execute
venuestringyesExchange venue

No output schema declared.

No examples provided.

create_skill ~171

Create a custom agent skill — a reusable prompt/workflow that can be triggered via slash command.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
autostringAuto-trigger condition
categorystringCategory: custom, trading, research, monitoring
descriptionstringyesWhat this skill does
estimatedTimestringEstimated run time
namestringyesSkill name (e.g. "precheck")
promptstringyesThe full prompt/instructions for the skill
tagsarrayTags for discovery
toolsUsedarraySimpleFunctions tools this skill uses
triggerstringyesSlash command trigger (e.g. "/precheck")

No output schema declared.

No examples provided.

create_strategy ~256

Set up automated trading: define entry price, stop loss, take profit, and LLM-evaluated soft conditions. The heartbeat engine checks conditions every 15 min and executes when met.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
directionstringyesTrade direction
entryAbovenumberEntry trigger: ask >= this value (cents, for NO direction)
entryBelownumberEntry trigger: ask <= this value (cents)
horizonstringTime horizon
marketstringyesHuman-readable market name
marketIdstringyesMarket ticker e.g. KXWTIMAX-26DEC31-T150
maxQuantitynumberMax total contracts
perOrderQuantitynumberContracts per order
rationalestringFull logic description
softConditionsstringLLM-evaluated conditions
stopLossnumberStop loss: bid <= this value (cents)
takeProfitnumberTake profit: bid >= this value (cents)
thesisIdstringyesThesis ID

No output schema declared.

No examples provided.

create_thesis ~132

Create a new prediction market thesis from a TESTABLE CLAIM — a statement that can be verified true or false at a future time. GOOD: "Bitcoin closes 2026 above $50,000". BAD: "High conviction due to large price gap" (that is reasoning, not a claim). Builds a causal tree and scans for mispriced contracts. Formation takes ~60s.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
syncbooleanWait for formation to complete
thesisstringyesYour thesis statement

No output schema declared.

No examples provided.

enrich_content ~129

Cross-reference any text with thousands of prediction market contracts. Paste content + topics, get divergence analysis: where sentiment disagrees with market prices. No auth, no Firecrawl needed. Demo/trial entry point.

NameTypeReqDescription
contentstringyesText content to cross-reference (up to 50K chars)
includeIndexbooleanInclude SimpleFunctions Index
modelstringLLM model for digest generation. Default: google/gemini-2.5-flash
topicsarrayyesTopics to search in prediction markets, e.g. ["iran", "oil"]

No output schema declared.

No examples provided.

explore_public ~51

Browse public theses from other users. Free-tier and rate-limited. Pass a slug to get details, or omit to list all.

NameTypeReqDescription
slugstringSpecific thesis slug, or empty to list all

No output schema declared.

No examples provided.

explore_theses ~42

Browse public theses (alias of explore_public). Pass slug to get one, omit to list.

NameTypeReqDescription
slugstringThesis slug, or empty to list

No output schema declared.

No examples provided.

fork_skill ~62

Fork a public skill into your collection. No slug needed — just the skill ID.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
skillIdstringyesPublic skill ID to fork

No output schema declared.

No examples provided.

fork_thesis ~235

Fork a thesis. Two modes: (1) Clone — call with just idOrSlug to copy a PUBLIC thesis verbatim into your collection. (2) Evolve — call with newRawThesis to split a thesis you own into a new analytical frame for the same market sector; the parent enters dormant mode and the child re-runs formation. Use evolve when the current frame is fundamentally inadequate for what the evidence now shows.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
idOrSlugstringyesThesis ID or public slug
inheritEdgeMarketIdsarrayEvolve mode: subset of current edge marketIds to carry over. Omit to let formation rescan fresh.
newRawThesisstringEvolve mode: new frame in 1-3 sentences. Omit for clone mode.
newTitlestringEvolve mode: short title for the new thesis, ≤60 chars
reasonstringEvolve mode: why the original frame is no longer adequate

No output schema declared.

No examples provided.

get_agent_guide ~60

Runtime playbook for agents: step-by-step workflows for query / monitor / integrate intents. Use when an agent is lost or needs onboarding.

NameTypeReqDescription
intentstringWorkflow intent
qstringSpecific question to scope the guide

No output schema declared.

No examples provided.

get_answer ~58

Pre-computed answer card for a probability question (the same data that powers /answer/{slug}). Returns probability, confidence, and citations.

NameTypeReqDescription
slugstringyesAnswer slug (e.g. will-the-fed-cut-rates-in-december)

No output schema declared.

No examples provided.

get_balance ~42

Advanced: Kalshi account balance and portfolio value.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys

No output schema declared.

No examples provided.

get_briefing ~56

Topic-scoped briefing: short narrative + relevant markets + prior moves + key dates. Reusable as a callable /briefing card.

NameTypeReqDescription
topicstringTopic keyword
windowstringLookback window

No output schema declared.

No examples provided.

get_calendar ~70

Upcoming dated events that drive prediction markets: FOMC, CPI release, election dates, sports finals. Returns date, topic, and linked tickers.

NameTypeReqDescription
categorystringCategory filter (econ, election, sports, geo)
daysnumberLookahead days (default 30)

No output schema declared.

No examples provided.

get_calibration ~75

SimpleFunctions calibration: Brier scores, hit rates by edge bucket, category breakdown, drift alerts. Measured against resolved/settled markets.

NameTypeReqDescription
categorystringTopic filter (fed, elections, ai, crypto, sports, ...)
periodstringPeriod (30d, 90d, all)

No output schema declared.

No examples provided.

get_changes ~64

Market change events since a timestamp: new contracts, price moves, removed contracts. Used by the live feed and agent context refreshers.

NameTypeReqDescription
qstringKeyword filter
sincestringISO timestamp lower bound
typestringChange type

No output schema declared.

No examples provided.

get_changes_delta ~66

Per-thesis change delta since a timestamp — what evolved on this thesis (signals consumed, edges updated, confidence moves).

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key
sincestringISO timestamp lower bound
thesisIdstringyesThesis ID

No output schema declared.

No examples provided.

get_congress_member ~32

Get a single Congress member by bioguide ID.

NameTypeReqDescription
idstringyesBioguide ID

No output schema declared.

No examples provided.

get_contagion ~81

Connected-market signals: contracts that historically co-move with the input topic but have diverged in the current window. Surfaces "this market should have moved but didn't" trades.

NameTypeReqDescription
topicstringTopic keyword (fed, election, ai)
windowstringLookback (e.g. 24h, 7d)

No output schema declared.

No examples provided.

get_context ~139

START HERE. Global market snapshot: top edges (mispriced contracts), price movers, highlights, traditional markets — live exchange data updated every 15 min. With thesisId + apiKey: thesis-specific context including causal tree, edges with orderbook depth, evaluation history, and track record. Global context is free-tier and rate-limited; API keys unlock higher limits.

NameTypeReqDescription
apiKeystringSimpleFunctions API key. Required only for thesis-specific context. Get one at https://simplefunctions.dev/dashboard/keys or run: sf login
thesisIdstringThesis ID. Omit for global market snapshot on the free tier.

No output schema declared.

No examples provided.

get_economic_anchors ~73

Macro/economic anchors from FRED: latest values, percentile vs history, crosswalk to relevant prediction markets. For grounding macro theses.

NameTypeReqDescription
categorystringCategory (rates, inflation, employment, growth)
seriesstringFRED series ID (e.g. CPIAUCSL)

No output schema declared.

No examples provided.

get_edges ~100

Top mispriced markets across all theses, ranked by edge size. Shows where your model disagrees with the market. No auth = public thesis edges. Auth = private + public.

NameTypeReqDescription
apiKeystringSimpleFunctions API key. Omit for public edges only.
limitnumberMax edges to return
minEdgenumberMinimum edge in cents
venuestringFilter: kalshi or polymarket

No output schema declared.

No examples provided.

get_evaluation_history ~67

Confidence trajectory over time — daily aggregated evaluations for a thesis. Use to analyze trends, detect convergence/divergence.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
thesisIdstringyesThesis ID

No output schema declared.

No examples provided.

get_feed ~66

Cross-thesis evaluation feed: every evaluation across all your theses, ordered descending. Powers `sf feed` CLI.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key
hoursnumberLookback hours (default 24)
limitnumberMax rows

No output schema declared.

No examples provided.

get_fills ~53

Advanced: Recent trade fills on Kalshi.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
tickerstringFilter by market ticker

No output schema declared.

No examples provided.

get_forecast ~103

Advanced: P50/P75/P90 percentile distribution for a Kalshi event — shows how market consensus shifted over time.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key (needed for authenticated Kalshi calls). Get one at https://simplefunctions.dev/dashboard/keys
daysnumberDays of history (default 7)
eventTickerstringyesKalshi event ticker (e.g. KXWTIMAX-26DEC31)

No output schema declared.

No examples provided.

get_glossary_term ~32

Get a single glossary term with full definition and links.

NameTypeReqDescription
slugstringyesGlossary slug

No output schema declared.

No examples provided.

get_heartbeat_config ~50

Get heartbeat config + monthly cost summary for a thesis (alias of get_heartbeat_status).

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key
thesisIdstringyesThesis ID

No output schema declared.

No examples provided.

get_heartbeat_status ~68

Get heartbeat config + this month's cost summary for a thesis. See news/X scan intervals, model tier, budget usage.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
thesisIdstringyesThesis ID

No output schema declared.

No examples provided.

get_highlights ~35

Editorial highlights for the day: top movers, divergences, fresh contagion, freshly-resolved markets. Curated summary view.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_index_history ~55

Historical SimpleFunctions Index snapshots. Pre-computed every 15 minutes, stored since v2 launch (2026-04-09). For charting trends.

NameTypeReqDescription
daysnumberLookback days (default 7)

No output schema declared.

No examples provided.

get_legislation ~42

Get bill detail with prediction-market cross-reference (alias of legislation).

NameTypeReqDescription
billIdstringyesBill ID, e.g. "119-hr-22"

No output schema declared.

No examples provided.

get_market_detail ~71

Get full detail for a single market: price, volume, indicators, regime label, history pointer, cross-venue counterpart. Lower-level than inspect_ticker — raw JSON only.

NameTypeReqDescription
depthnumberOrderbook depth levels to include (0 = none)
tickerstringyesMarket ticker

No output schema declared.

No examples provided.

get_market_diff ~94

Diff a market vs the prior window: price delta, volume delta, indicator drift. For "what changed in the last 6h?" questions.

NameTypeReqDescription
sortstringSort field (e.g. priceDelta)
tickersstringComma-separated tickers
topicstringTopic keyword if no tickers
windowstringLookback (default 24h)

No output schema declared.

No examples provided.

get_market_history ~39

Get rolling 7-day price + indicator history for a single market. For trajectory questions and chart rendering.

NameTypeReqDescription
tickerstringyesMarket ticker

No output schema declared.

No examples provided.

get_market_index ~52

SimpleFunctions Prediction Market Index v2. Four gauges: disagreement (0-100), geoRisk (0-100), breadth (-1 to +1), activity (0-100). Updated every 15 minutes.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_market_microstructure_history ~75

Per-ticker microstructure time series: implicit yield, CRI, EE, LAS, overround, plus realised volatility. Used for charting indicator drift.

NameTypeReqDescription
daysnumberLookback days (default 7)
intervalstringBucketing
tickerstringyesMarket ticker

No output schema declared.

No examples provided.

get_markets ~129

Get traditional market prices via Databento. Default: SPY, VIX, TLT, GLD, USO. Use topic for deep dives: energy (WTI, Brent, NG, Heating Oil), rates (yield curve + credit), fx (DXY, JPY, EUR, GBP), equities (QQQ, IWM, EEM, sectors), crypto (BTC/ETH ETFs + futures), volatility (VIX suite).

NameTypeReqDescription
topicstringDeep dive topic: energy, rates, fx, equities, crypto, volatility. Omit for core 5.

No output schema declared.

No examples provided.

get_milestones ~71

Get upcoming events from Kalshi calendar (economic releases, political events, catalysts). Free-tier and rate-limited.

NameTypeReqDescription
categorystringFilter by category (e.g. Economics, Politics, Sports)
hoursnumberHours ahead to look (default 168 = 1 week)

No output schema declared.

No examples provided.

get_newmarkets ~76

Recently-listed markets (new contracts) on Kalshi and Polymarket. For finding fresh trading opportunities.

NameTypeReqDescription
hoursnumberLookback hours (default 24)
limitnumberMax rows
minLiquiditynumberMinimum liquidity threshold
venuestringkalshi or polymarket

No output schema declared.

No examples provided.

get_opinion ~27

Get a single opinion/essay by slug.

NameTypeReqDescription
slugstringyesOpinion slug

No output schema declared.

No examples provided.

get_orders ~61

Advanced: Current resting orders on Kalshi.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Get one at https://simplefunctions.dev/dashboard/keys
statusstringFilter by status: resting, canceled, executed. Default: resting

No output schema declared.

No examples provided.

get_positions ~65

Advanced: Open Kalshi positions with live P&L. Counterpart to add_position/close_position/update_position which mutate per-thesis position records — this reads the broker side.

NameTypeReqDescription
apiKeystringyesSimpleFunctions API key. Requires Kalshi credentials configured via sf setup.

No output schema declared.

No examples provided.