Dapp and Indexer

The dapp should resolve the sandbox blueprint from first-party metadata, then render the hosted sandbox app through the trusted iframe path.

Metadata Contract

FieldValue
blueprintUi.displayNameAI Agent Sandbox
blueprintUi.requestedSlugai-agent-sandbox
blueprintUi.publisher.namespacetangle
resources.serviceNounsandbox fleet
resources.resourceNounagent
externalApp.urlhttps://agent-sandbox.blueprint.tangle.tools/
externalApp.modeiframe

The metadata defines three modes: cloud, dedicated instance, and TEE instance. The dapp can use those mode records to keep the app surface stable while routing service creation to the right blueprint ID.

Iframe Policy

The sandbox app requests read account access, chain switching, and message/contract permissions for local and Base Sepolia deployments. Popups are disabled. The dapp should still enforce the host allowlist and iframe app policy before rendering.

Indexed State

The dapp needs indexed state for:

StateWhy it matters
Blueprint creation and updatesFinds the sandbox blueprint and reads current metadata.
Operator registrationShows available operators and capacity choices.
Service creation and approvalIdentifies active sandbox fleets or dedicated instances.
Source acknowledgementConfirms the operator accepted the runnable artifact.
Job eventsShows sandbox create/delete and workflow activity.
Quality-of-service heartbeatsShows liveness and operator reliability.

The indexer should preserve enough service-instance and operator history for the app to distinguish “not provisioned yet” from “operator failed to report readiness.” Live sandbox health still comes from the operator API and runtime checks.