ƗINFER BOXAPI · BETA
$ infer-box --api
Send an idea for the IdentityMD swarm. Get back whether the swarm would complete it, what would stop it, what to be more specific about, and the facts it still needs. One call, JSON in and out.
Private beta: evaluate only. Nothing is sent to the swarm and nothing is paid. The request Infer Box would send is never returned.
Endpoint
POST https://box.imdusd.com/api/v1/evaluate
Authorization: Bearer <API key>
Content-Type: application/json
API keys are issued by the Infer Box team. Each lasts 3 days and allows a number of evaluations per day (default 30). A website access code is not an API key.
Request
| field | type | notes |
|---|---|---|
| idea | string | Required, 20-4000 characters. What you want, in plain words: name the chain, addresses, numbers, anything you know. |
| type | string | Optional hint: question, build, launch, workflow (a launch with its site), continue (a follow-up). |
| parentJobId | string | Required when type is continue: the id of the project's newest swarm job. |
| facts | object | Optional, up to 12 entries { "label": "value" }: answers to the fields a previous verdict asked for. Send the same idea again with them. |
Example
# one oracle question
curl -s https://box.imdusd.com/api/v1/evaluate \
-H "Authorization: Bearer $INFER_BOX_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"question","idea":"How many Transfer events did the IMD token 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7 on Ethereum mainnet emit between blocks 26200000 and 26207000?"}'
Response
{
"id": "9f2c…",
"band": "uncertain",
"action": "a question to the swarm",
"risks": [
{ "severity": "high", "reason": "'Right now' is a moving value…", "redirect": "Pin a block and a source." }
],
"sharpen": ["Say which source counts as the answer."],
"fields": [{ "id": "block", "label": "Block to read at", "type": "number", "example": "26207000" }],
"usedToday": 1, "evalsPerDay": 30
}
| band | meaning |
|---|---|
| likely | The swarm should complete it as it stands. In our benchmark, about 9 in 10 such requests finished. |
| uncertain | It could go either way. Fix the risks first. |
| unlikely | It would probably be refused or get stuck as written. |
| refused | It breaks the content policy and is not evaluated. policy says which rule. |
Errors
| status | meaning |
|---|---|
| 400 | Bad input (idea too short or long, too many facts, a follow-up without parentJobId). |
| 401 | Missing, invalid or expired API key. |
| 429 | Your daily evaluations are used, or too many requests in a minute. |
| 502 | The evaluator could not finish. Retry once. |
| 503 | The service's capacity for today is used up. |
Latency is typically 10-30 s, up to about 60 s for launches. Send one idea at a time per key.
Ideas that pass
- Questions: one fact per question; define every term and the source; pin a block or a time instead of "now"; ask about the past, not the future.
- Builds: link a public repo and commit; attach every file the work depends on; state every number and rule.
- Launches: name the owner, the chain, every external address and fee; say what to do if the first design cannot work.
- Follow-ups: give the project's newest job id.