> ## Documentation Index
> Fetch the complete documentation index at: https://docs.terminal3.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Capabilities come from your WIT imports

> Capabilities are determined by the host interfaces imported in your contract's world.wit

You don't declare capabilities in a manifest — there isn't one. What your TEE contract can do is decided in two places, both enforced inside the TEE at call time.

Your contract runs in one of the `tenant-*` linker worlds, chosen from the host interfaces it imports in `world.wit`. Import `http` and your contract is linked against the `tenant-http` world; import nothing beyond the base and you get `tenant-base` (`kv-store`, `logging`, `tenant-context`).

```wit theme={null}
world your-contract {
  import host:tenant/tenant-context@1.0.0;
  import host:interfaces/logging@2.1.0;
  import host:interfaces/kv-store@2.1.0;
  import host:interfaces/http@2.1.0;   // ← opting into outbound HTTP
}
```

On top of that, the TEE runtime enforces a capability ceiling — privileged interfaces (signing, user profile, …) are never linked into tenant worlds. See [Host API → z-namespace](/t3n/how-t3n-works/host-api) for the full list.
