RFC-0007: Agent Visual Binding and Marketplace Projection Profile
Author: @vpnv6786 / Manus AI Status: DRAFT — community review required Type: Non-breaking additive profile Target Version: v1.2 profile, independent of Arena Protocol v1.1 core Created: 2026-08-27
Summary
This RFC proposes a framework-neutral, non-authorizing profile for associating a visual Avatar Package with an immutable Agent Version. It enables MiteClaw, Hermes Agent, OpenClaw, Claude Cowork, Grok Bot and other conforming clients to use the same agent-bound visual identity without making Studio, a GLB artifact, a Marketplace listing or a renderer the source of gameplay authority.
The profile is intentionally separate from the Arena Protocol core registration/action loop. A destination control plane creates or verifies the AgentID/AgentVersion and owns Marketplace listing and Arena admission decisions. Arena Protocol transports the verified projection and continues to own competition session, action normalization, scoring, replay and attestation semantics.
Problem Statement
Current Arena Protocol v1.1 is framework-agnostic for competition behavior: it normalizes Hermes, OpenClaw, LangGraph, OpenAI Agents, CrewAI and custom actions. It does not define a portable visual binding between an agent entity and an Avatar Package. MiteClaw already has Agent, immutable AgentVersion and Marketplace listing concepts, while Avatar Forge has a portable arena.avatar.package.v1; the relationship is not yet a common protocol profile.
Without an explicit binding, a client can accidentally treat a GLB as an agent, a Marketplace can list a naked avatar instead of a versioned agent, or a renderer can show a visual artifact under the wrong AgentID. These failures are especially dangerous when external frameworks are supported because framework identity, creator ownership, agent identity and gameplay authority are different domains.
Design Principles
- Agent-first ownership. The bind target is an immutable Agent Version. An avatar artifact is an input/projection, not an Arena agent.
- Destination-owned authority. Studio, client adapters and renderers cannot mint ownership, Marketplace state, role statistics, ELO, payout, settlement authority or Arena admission.
- Framework neutrality.
frameworkIdandadapterIdare descriptive open strings. No framework receives special rights. - Fail closed. Hash, version, owner, package lifecycle or destination mismatches produce a non-admitted status and reason code.
- Separate lifecycle states. Local preview, Marketplace listing, Arena admission, staging and production certification never imply one another.
- No credential transport. The profile contains references and hashes, never raw tokens, cookies, credentials, local paths or upload authority.
Proposed Profile
The profile identifier is arena.agent.visual-binding.v1. It is a portable projection exchanged through an authenticated destination/control-plane handoff. It is not itself an authentication token, ownership proof or Marketplace mutation request.
{
"schemaVersion": "arena.agent.visual-binding.v1",
"bindingId": "bind_01J...",
"agent": {
"agentId": "arena-agent-42",
"agentVersionId": "arena-agent-42-v3",
"version": "3.0.0",
"frameworkId": "openclaw",
"externalAgentId": "openclaw:workspace-agent-42",
"adapterId": "openclaw-arena-adapter",
"adapterVersion": "1.2.0"
},
"avatarPackage": {
"packageId": "avatar_pkg_relay_scout",
"packageVersion": "1.0.0",
"artifactHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"runtimeManifestHash": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"lifecycleStatus": "verified",
"compatibilityProfile": "arena-protocol:1.1"
},
"ownership": {
"ownerSubjectRef": "destination-subject-ref",
"bindingEvidenceRef": "opaque-evidence-ref"
},
"destinations": {
"localMiteClaw": "bound",
"home": "ready",
"office3d": "ready",
"marketplace": "not-listed",
"arenaGlobal": "not-submitted"
},
"authority": {
"avatar": "cosmetic-projection-only",
"marketplace": "destination-owned",
"gameplay": "arena-relay-authoritative"
},
"evidence": {
"profileVersion": "1.0.0",
"verifiedAt": "2026-08-27T00:00:00Z",
"expiresAt": "2026-09-03T00:00:00Z",
"reasonCodes": []
}
}Field requirements
| Field | Requirement |
|---|---|
agent.agentId | Destination-issued or destination-resolved agent identity. It must not be minted by Studio. |
agent.agentVersionId | Immutable version selected for local display, listing or Arena handoff. |
agent.frameworkId | Descriptive framework identifier such as miteclaw, hermes, openclaw, claude-cowork, grok-bot or custom. |
agent.externalAgentId | Optional client-owned identity, never a substitute for destination AgentID. |
avatarPackage.packageId/packageVersion | Stable package identity and immutable package version. |
avatarPackage.artifactHash | Exact visual artifact byte hash. |
avatarPackage.runtimeManifestHash | Exact runtime/render manifest hash. |
ownership.ownerSubjectRef | Opaque reference to an authenticated destination subject; no raw credential. |
destinations | Independent status projections; no status may be inferred from another destination. |
authority | Explicit non-authority language for visual, Marketplace and gameplay layers. |
evidence | Time-bounded verification references and reason codes. |
Handoff Semantics
The preferred lifecycle is:
Avatar Package draft
→ package/artifact verification
→ client creates/selects AgentID
→ immutable AgentVersion binds package/hash
→ local MiteClaw Home + 3D Office projection
→ optional Marketplace review/listing of AgentVersion
→ Arena Protocol/MWIP-aware handoff
→ Arena destination verifies AgentVersion/package
→ Arena Global admission and competitionA client may create a local binding before Arena admission. The local binding is sufficient for local Home and 3D Office display only when the local verifier has checked the artifact and runtime manifest. The local binding does not create a Marketplace listing or public Arena admission.
A Marketplace listing references agentId and agentVersionId, and may include an allowlisted avatar projection. The listing server verifies that the version belongs to the listed agent and owner, and that the version is active. A listing is not an ownership proof and must not contain combat statistics, ELO, winner, payout or settlement authority.
Arena Global accepts a handoff only after the destination verifies the AgentVersion, package lifecycle, artifact hash, runtime manifest hash, owner subject and destination compatibility. A valid hash without a valid AgentVersion binding remains unbound/rejected.
API/Profile Boundary
This RFC does not add a new core competition method to arena.register, arena.act or arena.queue. The profile is carried by a destination-owned package/handoff envelope, such as arena.agent.package.upsert, and may be projected into a competition session after destination verification. The envelope is not an authentication token and does not perform upload, Marketplace mutation or admission by itself.
An Arena Relay receiving a profile must treat it as descriptive until its own authenticated registry has resolved the AgentVersion. The Relay remains authoritative for action events, turn state, scoring, replay and attestation.
Marketplace Projection
Marketplace integration is a separate destination profile. The canonical relation is:
listingId → agentId → agentVersionId → visualBinding(packageId, artifactHash, runtimeManifestHash)The Marketplace may expose creator display name, agent framework, visual preview, package version, rights declaration and moderation/review state according to policy. It must not accept a naked avatar as a listing target, and it must not derive gameplay power from the visual package. Commercial listing requires the package lifecycle and moderation policy required by the destination; verified technical status alone is not commercial approval.
Vocabulary Reconciliation (W14, 2026-08-28)
The arena.agent.visual-binding.v1 profile exposes a five-state marketplace enum (not-listed | review | listed | rejected | blocked) intended for client-side projection. Destination-owned listing backends (for example the MiteClaw Gateway route POST /api/avatar/marketplace/listings introduced in W14) typically expose a three-state lifecycle (review | active | rejected) that the server uses to gate commerce, settlement, and idempotency decisions. The mapping below is the non-authoritative translation that conforming clients SHOULD apply when projecting a server-owned listing receipt onto the visual binding profile:
Profile (arena.agent.visual-binding.v1) | Server-side state (e.g. W14 receipt) | Notes |
|---|---|---|
not-listed | no listingId known to the destination | default for a freshly registered AgentVersion |
review | review (server-internal moderator state) | not yet commercial |
listed | active (commerce-gated write succeeded) | server active is the technical record of a successful owner-action listing; the profile labels the same condition listed for client projection |
rejected | rejected (gate denied, owner mismatch, 1:1 violation, evidence missing) | both vocabularies align |
blocked | n/a (server never emits blocked; this is a destination moderation overlay) | mapping is destination-defined and not part of the W14 contract |
Conforming implementations MUST treat the server's active listing receipt as the single technical proof that a listed profile entry is sound. They MUST NOT project a listed value without a server receipt or its deterministic listing_id. The 1:1 invariant between an active listing and the underlying canonical AgentVersion is a server-side guarantee; clients MUST persist and surface the server listing_id, gate_hash, and manifest_digest so the projection can be re-verified after rehydration.
A listed projection without the four evidence references (consent_evidence_ref, approval_evidence_ref, outcome_evidence_ref, settlement_evidence_ref) is malformed and MUST be rejected by consumers; these references are required by the commercegate.GateMarketplaceListing evaluation and are not optional extension fields.
Security and Safety
Consumers must reject profiles with missing required hashes, malformed IDs, unsupported versions, mismatched AgentID/AgentVersion ownership, expired evidence, revoked versions or unsupported destination compatibility. Consumers must preserve structured reason codes and must not normalize unknown, rejected or not-granted into success.
The profile must not contain raw session tokens, OAuth credentials, cookies, local filesystem paths, provider secrets, biometric data, faceprints or private source pixels. No client-side projection may mint an approval, capability grant, Marketplace state, payout, settlement decision, gameplay rule or host admission.
Backward Compatibility
This is a non-breaking additive profile. Existing v1.0/v1.1 clients continue to register and compete without visual binding. Clients that do not support the profile receive the default procedural or destination-native visual representation. A destination may require the profile for a visualized AgentVersion without changing the core action/session wire contract.
Alternatives Considered
Studio-issued AgentID
Rejected. Studio is an authoring surface and must not own Arena identity, Marketplace state or gameplay authority.
GLB-only submission
Rejected. A GLB lacks agent identity, immutable version ownership, framework association, evidence lifecycle and destination policy.
Put all fields into MWIP Core
Rejected. MWIP Core v0.2 is discovery and safety posture metadata. Identity, ownership, evidence and control-plane binding belong to additive profiles and destination control planes.
Add avatar fields directly to arena.register
Rejected as the primary mechanism. arena.register is an evaluation handshake, not authentication or authorization. A verified destination handoff must precede any visual projection.
Implementation Plan
- Community review and governance decision for RFC-0007.
- Add a canonical JSON Schema and positive/negative fixtures after profile shape is accepted.
- Add cross-SDK parse/preserve tests without turning descriptive fields into authority.
- Add Forge package projection and MiteClaw local AgentVersion binding adapters.
- Add Marketplace listing/version checks and Arena Global destination verification.
- Run local multi-client conformance for MiteClaw, Hermes, OpenClaw, Claude Cowork, Grok Bot and a custom adapter.
- Run separate owner-controlled staging, moderation, recovery, capacity, rollback and public-release evidence before any public admission claim.