Set Up Development Environment - Terminal 3 Documentation
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
This page picks up where Quickstart leaves off. Complete that first — you should already have an authenticated T3nClient and your tenantDid before starting here.
Get your API key and DID
If you haven’t already, get your DID, download your API key, and claim test credits from the claim page — it’s self-serve, no approval needed.Install Rust + WASM toolchain
TEE contracts are compiled to WebAssembly (WASM) binaries, built with the Rust toolchain. If you don’t already haverustup/cargoinstalled:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # choose the default option when prompted
source "$HOME/.cargo/env"
Then add the WASM target:
rustup target add wasm32-wasip2 # WASI Preview 2 build target — a few seconds
cargo install wasm-tools # optional — inspect/verify the component
cargo install wasm-tools compiles roughly 100 crates from source and takes about 2 minutes with no progress output in between — that’s normal, not a hang.
- Build a TenantClient from your session
Contracts are registered and managed through aTenantClient, built around thetenantDidyou already obtained in Quickstart — never construct or derive this value yourself. Append this to the bottom of the samequickstart.tsyou created in Quickstart — it needst3nandtenantDidfrom that file’s scope:import { TenantClient, getNodeUrl } from "@terminal3/t3n-sdk";
const tenant = new TenantClient({ t3n, // the T3nClient you already authenticated in Quickstart baseUrl: getNodeUrl(), // the active node from setEnvironment() tenantDid, // did.value from Quickstart — never hardcode });
await tenant.me(); // throws if something's wrong; confirms the client actually works console.log("TenantClient ready.");
Run it the same way as before — `npx tsx quickstart.ts` — and confirm you see `TenantClient ready.` printed after your `tenantDid` line.
**This authenticates you to manage your own deployment** — a different job from agent authentication. The DID must equal the one admitted as a tenant in `idx:_tenants`: exactly the `tenantDid` you already have from Quickstart.