# Identity (/docs/learn/identity)



Every actor and every workload on Voidnet has exactly one identity, and all of them work the same way. Learn the pattern once; it never varies.

## Users [#users]

A user is an email plus a unique username. Usernames are lowercase letters, numbers, and hyphens, 3–20 characters. Users carry roles — every account starts as a user, and enrolling as a developer adds the developer role.

## Developers and publishers [#developers-and-publishers]

Claiming a username as a developer creates your publisher identity: one user, one publisher, and the username never changes. Your publisher name is your public face across the ecosystem — marketplace listings, purchase records, usage logs, and API routes all render it the same way, `@username`.

## Domains [#domains]

Publishing requires a verified domain, and one domain belongs to one account — a domain verified anywhere cannot be verified again elsewhere. See [Domain Verification](https://docs.openvoidnet.com/docs/domain-verification) for the file, the checks, and reading failures.

## Apps [#apps]

Every app belongs to exactly one publisher, and its public identity is `username/appname`:

```
POST /v1-beta/{adapter}/{username}/{appname}
```

App names are unique per publisher (`a-z, 0-9, -, _`, 3–50 characters). The same pair identifies the app everywhere: marketplace pages, purchases, usage, keys, and gateway routes — across MCP tools, LLM models, and beyond.

## Tools [#tools]

A tool's identity is its app plus its tool name, dotted: `appname.toolname`. When an assistant calls a tool, that dotted name is the whole address — it resolves to exactly one tool, on exactly one app, from exactly one publisher.

## Models [#models]

An LLM app carries exactly one model, addressed by its exact published model name. Text in, text out — the name you call is the name that was verified.

## Agents [#agents]

Agents follow the same publisher-scoped identity as every other workload: owned by one publisher, addressed through the same `username/appname` shape, metered and keyed like everything else.

## Keys [#keys]

Keys are prefixed so their kind is visible at a glance: buyer keys start with `vnb-sk-`, publisher server keys with `vnp-sk-`. Keys are scoped — a buyer key spends that buyer's wallet on purchased apps, a publisher key is valid only for its own app server.

## The trust chain [#the-trust-chain]

Domain proves publisher. Publisher owns apps. Apps expose tools and models. Buyers purchase apps and call them with scoped keys. Every link is checkable from the one before it — that chain is what "identity" means on Voidnet.

## Further reading [#further-reading]

* [Ecosystem](https://docs.openvoidnet.com/docs/learn/ecosystem) — how the pieces fit together.

* [Void Apps](https://docs.openvoidnet.com/docs/learn/void-apps) — app types, consuming and publishing.

* [Domain Verification](https://docs.openvoidnet.com/docs/domain-verification) — proving domain ownership.

* [MCP Publisher](https://docs.openvoidnet.com/docs/mcp/publisher) · [LLM Publisher](https://docs.openvoidnet.com/docs/llm/publisher) — shipping tools and models.
