## Overview

T3 Agent Developer Kit (ADK) is a client SDK that allows developers to build agent tenant applications on the [T3 Network (T3N)](https://docs.terminal3.io/t3n/overview/what-is-t3n). It lets developers onboard an agent tenant identity, manage tenant-scoped data and [TEE contracts](https://docs.terminal3.io/t3n/how-t3n-works/tees#tee-contract), and execute TEE contracts inside T3N.

The current SDK only supports **TypeScript** / **JavaScript**. Support for more languages is coming soon.

## Key Capabilities

| Capability | What it does |
| --- | --- |
| Authenticated session | `T3nClient.authenticate()` signs in with your Ethereum wallet and opens an encrypted channel to the [TEE node](https://docs.terminal3.io/t3n/how-t3n-works/tees) — your `tenantDid` comes back from this call, never derived by hand. |
| Tenant setup (`TenantClient`) | Built around your already-authenticated `tenantDid`; `tenant.me()` confirms it’s wired up correctly. |
| Tenant data (`tenant.maps`) | `tenant.maps.create()` creates key-value maps under your private `z:<tid>:…` prefix, with explicit `readers`/`writers` access rules per map. |
| Tenant contracts (`tenant.contracts`) | `tenant.contracts.register()` uploads a Rust→WASM contract and gives it a tenant-local name; registering a new `version` at the same tail replaces it. |
| Invoking a contract | An authenticated agent or user client calls `executeAndDecode()` (or `execute()`) with `script_name`/`script_version`/`function_name`/`input` — the same pattern whether you’re calling as a tenant, agent, or user. |
| Hardware-enforced isolation | Every read and write is checked against your tenant prefix inside T3N — no ACL to misconfigure. |

See the [Quickstart](https://docs.terminal3.io/developers/adk/get-started/quickstart) and [Reference](https://docs.terminal3.io/developers/adk/reference) for the exact method signatures — this page is a conceptual map, not the API surface itself.
