AI Trading Dapp and Indexer
The Arena is the product app for AI Trading. Tangle Cloud should launch it from trusted metadata and preserve the protocol fallback route for raw service state.
Metadata the dapp should use
| Field | Current value in repo metadata |
|---|---|
blueprintUi.displayName | AI Trading Desk |
blueprintUi.requestedSlug | ai-trading |
blueprintUi.publisher.namespace | tangle |
externalApp.mode | iframe |
externalApp.url | https://trading-arena.blueprint.tangle.tools/ |
The metadata also declares cloud, instance, and TEE modes. The Arena should use those mode records instead of hard-coding a single blueprint ID.
Indexed state
| State | Why the dapp needs it |
|---|---|
| Blueprint registration and metadata | Find the current trading blueprint and app policy. |
| Operator registration | Discover operator endpoints and capacity. |
| Service requests and instances | Link a user request to the running bot service. |
| Job events | Show provision/config/start/stop style commands where applicable. |
| Pricing pointers | Show quote or subscription information when available. |
| Heartbeats | Distinguish dead operators from missing data. |
The indexer should make operator discovery reliable. It should not be treated as proof that a bot is healthy or that a trade was safe.
Live operator reads
The Arena still needs operator APIs for:
- bot roster
- bot detail
- provisions
- vault state
- paper/live state
- strategy config
- trade history
- terminal or sidecar logs
- health
If an operator endpoint is unreachable, say that. Do not replace it with stale indexed state unless the UI labels it as stale.
User-facing states
| State | Meaning |
|---|---|
| No operator | The blueprint exists, but nobody is serving it on the selected network. |
| Operator unreachable | The registration exists, but the public endpoint is failing. |
| Provision pending | The service exists, but no bot is ready yet. |
| Paper | The bot is using live data and simulated fills. |
| Live | The bot can submit real execution through its configured venues and vault policy. |
| Policy blocked | The bot generated an intent that the policy or validator path rejected. |
These states should be visible in the app. “Loading” is not enough.
Iframe policy
Trading is iframe-first under trading-arena.blueprint.tangle.tools.
The parent dapp should:
- restrict the iframe to the trusted host
- pass parent origin and chain context
- keep wallet approvals in the parent
- expose the service instance link
- keep the raw protocol fallback route available
The Arena owns product workflow. Tangle Cloud owns the shell, wallet safety, and route policy.