# onboard_ultron

Use when the user says Hi Ultron, Hey Ultron or explicitly asks to start Ultron; a generic hi alone is not a trigger; call with {} to read saved setup and return one next question. Use suggestedReply and the connectionChecklist with signup links, examples and what each key unlocks. Ask which to connect first; no naming or role questionnaire before that. Resume existing users without restarting. Personalize the assistant, learn the user’s role and goal, explain relevant capabilities and guide optional secure connections. No passwords, no secret extraction, no trades.

## Say hi to Ultron — start or resume

Use when the user says Hi Ultron, Hey Ultron or explicitly asks to start Ultron; a generic hi alone is not a trigger; call with {} to read saved setup and return one next question. Use suggestedReply and the connectionChecklist with signup links, examples and what each key unlocks. Ask which to connect first; no naming or role questionnaire before that. Resume existing users without restarting. Personalize the assistant, learn the user’s role and goal, explain relevant capabilities and guide optional secure connections. No passwords, no secret extraction, no trades.



## Permission and calling convention

Required scope: chain:read. This tool reads data or account-owned state.

This tool does not sign or broadcast a transaction. Check errors, source timestamps and explicit unavailable fields before using the result.



```
POST /api/tools/onboard_ultron
Authorization: Bearer <ULTRON_ACCESS_KEY>
Content-Type: application/json
```

## Input schema

Inputs are validated against this current schema. Use exact values from live source results rather than substituting a ticker for a contract or a different chain.



```
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "role": {
      "type": "string",
      "enum": [
        "trader",
        "builder",
        "both"
      ]
    },
    "goal": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "focus": {
      "minItems": 1,
      "maxItems": 9,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "market_research",
          "price_alerts",
          "wallet_tracking",
          "social_research",
          "build_apps",
          "contract_checks",
          "history",
          "routines",
          "case_knowledge"
        ]
      }
    },
    "providerChoices": {
      "type": "object",
      "properties": {
        "blockscout": {
          "type": "string",
          "enum": [
            "connect",
            "later",
            "skip"
          ]
        },
        "coingecko": {
          "type": "string",
          "enum": [
            "connect",
            "later",
            "skip"
          ]
        },
        "apify": {
          "type": "string",
          "enum": [
            "connect",
            "later",
            "skip"
          ]
        },
        "x": {
          "type": "string",
          "enum": [
            "connect",
            "later",
            "skip"
          ]
        },
        "alchemy": {
          "type": "string",
          "enum": [
            "connect",
            "guide",
            "later",
            "skip"
          ]
        }
      },
      "additionalProperties": false
    },
    "wantsNotifications": {
      "type": "boolean"
    },
    "client": {
      "type": "string",
      "enum": [
        "claude",
        "codex",
        "chatgpt",
        "other"
      ]
    },
    "skipPersonalization": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
```

## Continue building

Use the MCP tools/list response or /openapi.json for machine-readable discovery. For workflows and evidence boundaries, follow the appropriate guide.



[REST API](/docs/api) · [Builder quickstart](/docs/builders) · [Research workflow](/docs/trading-assistant)