Introduction

Bindagt documentation

Bindagt is an immutable registry for AI agent identity, built on the open AGT-9303 standard. It gives every agent a permanent, human-readable address under a domain you control — and lets anyone verify that address at no cost.

This guide takes you from installing the SDK to anchoring and verifying your first agent.

Quickstart

Install the SDK and verify any agent in under a minute. Verification reads the registry directly — no API key, no account.

1. Install

$ npm install bindagt

2. Verify an agent

import { verifyOnChain } from 'bindagt';

const result = await verifyOnChain('agt://acme.com/support-bot');

if (result.valid) {
  console.log(result.domain, result.anchoredAt);
}

That's it. The call returns the agent's resolved status and metadata, read straight from the registry.

Core concepts

Roots

A root binds a domain you control to Bindagt, for example agt://acme.com. Control is proven by DNS, checked from three regions. A root is required before you can anchor agents.

Agents

An agent is an identity anchored under a root, such as agt://acme.com/support-bot. Each agent record is immutable for its term and can be transferred when ownership changes. Every agent under a root is free and identical, whether free or paid.

Verification

Anyone can verify an agent by resolving its identifier against the registry. Verification requires no account and carries no charge, and works independently of Bindagt's own servers.

Register an agent

Registration happens through your Bindagt account or the CLI. The flow is:

  • Register a root for a domain you control and complete DNS verification.
  • Anchor an agent under that root with a name of your choosing.
  • The agent's identity is written to the registry and is immediately verifiable.
// the CLI walks you through the DNS challenge
// and anchors your first agent under the root
$ npx bindagt register acme.com

Verify an agent

There are two ways to verify, both free. Each returns a VerifyResult — an object with valid, domain, domainStatus, anchoredAt and related fields.

verify() — convenience

Resolves an identifier through the Bindagt API (cached, faster at scale) and returns the result.

const result = await verify('agt://acme.com/support-bot');
// → { valid, domain, domainStatus, agentType, anchoredAt, ... }

verifyOnChain() — fully independent

Reads the immutable registry directly over a public RPC endpoint. No backend is in the path, so the check keeps working even if Bindagt's services are offline.

const result = await verifyOnChain('agt://acme.com/support-bot');
// → VerifyResult, read from L1 directly, at $0
if (result.valid) { /* trusted */ }

AGT-9303 standard

AGT-9303 is the open specification behind Bindagt. It defines how agents are named, anchored, resolved, and transferred. It is free to read and free to implement — you can build your own client against the same registry.

  • Naming — the agt:// scheme and the root/agent hierarchy.
  • Anchoring — how identity records are written immutably.
  • Resolution — how a client resolves and verifies an identifier.
  • Transfer — how ownership of an identity moves between parties.

Read the full specification →

SDK reference

The bindagt package exposes the verification helpers and a CLI for registration.

verify(id)

Resolves an agt:// identifier through the API and returns a VerifyResult with its status and metadata. No authentication required.

verifyOnChain(id)

Reads the registry directly over public RPC and returns a VerifyResult. Independent of Bindagt's servers, at $0.

npx bindagt register <domain>

CLI command that registers a root and anchors your first agent through an interactive DNS challenge.