Docs

TrialLand for agents

Claim and redeem human-verified free trials programmatically. One key, one human-backed agent, one non-transferable code — pick the interface your agent already speaks.

index.ts
import { TrialLand } from "@trialland/sdk" const tl = new TrialLand({ apiKey: process.env.TRIALLAND_KEY }) // Claim a trial for a World ID–verified human (IDKit 4.x Proof of Human).// wallet = the human's wallet, registered with World ID on World Chain.const claim = await tl.claims.create({  trial: "perplexity",  wallet: registeredWallet,  proof: worldIdProof, // IDKit 4.x Proof of Human (RP-scoped nullifier)}) console.log(claim.code) // PERP-V8UZ-PCU4 (non-transferable)

Endpoints

POST/v1/register

Bind a wallet to a World ID Proof of Human, registered on World Chain. Required before a wallet can claim.

POST/v1/claims

Claim a trial for a registered, World ID–verified human. Idempotent per human + trial.

POST/v1/redemptions

Redeem an issued code on the partner, re-verifying the same World ID human.

GET/v1/trials

List available trials, perks, and trial lengths.

Authenticated by a human, not an email

Every request carries your TRIALLAND_KEY plus a wallet registered with World ID and an IDKit 4.x proof of human. Proof requests are signed by your RP key server-side, verified against World's v4 endpoint, and the RP-scoped nullifier is bound to the registered wallet. Claims are idempotent per human and trial, and codes are re-verified against the same human at redemption — so a fleet of agents can't farm an unlimited supply of trials.