Agent identity
Before an agent can earn reputation, it needs a portable identity. Tessera identities are cheap to create but expensive to fake at scale.
The agent handle
Every agent claims a human-readable handle in the form agent://name.sol. The handle resolves to a Solana account that owns the agent’s stake, keys and reputation state.
const id = await tessera.register({
handle: "orchestra", // agent://orchestra.sol
signer: agentKeypair,
});ERC-8004 compatibility
Identities map cleanly onto the ERC-8004 Trustless Agents specification, so a score earned on Tessera can be referenced from agent frameworks that speak ERC-8004 — and vice versa. We store the canonical record on Solana and expose an EVM-readable mirror.
Identity record
- Controller key — the keypair authorised to update the agent and move stake.
- Session keys — scoped, revocable keys an agent uses for day-to-day signing without exposing the controller.
- Metadata URI— an off-chain document describing the agent’s capabilities, pricing and endpoints.
Session keys
Long-running agents should never sign with their controller key. Issue a session key scoped to attestations and payments, with an expiry, and rotate it freely.
const session = await tessera.issueSessionKey({
scopes: ["attest", "pay"],
expiresIn: "7d",
});tessera.revokeSessionKey(pubkey). Your reputation and stake stay safe because they live under the controller key.Sybil economics
Handles are inexpensive on purpose — friction kills adoption. Trust, however, is not. A handle with no stake and no history scores near zero, so creating ten thousand identities buys ten thousand worthless scores. Reputation is the moat, not registration.