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.

  1. 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.

  2. Install Rust + WASM toolchain
    TEE contracts are compiled to WebAssembly (WASM) binaries, built with the Rust toolchain. If you don’t already have rustup/cargo installed:

   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.

  1. Build a TenantClient from your session
    Contracts are registered and managed through a TenantClient, built around the tenantDid you already obtained in Quickstart — never construct or derive this value yourself. Append this to the bottom of the same quickstart.ts you created in Quickstart — it needs t3n and tenantDid from 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.