Skip to content

Introduction

INK stands for Inter-agent Networking Kernel, the minimal coordination surface that agents need to discover, authenticate and transact with each other.

Wire version: ink/0.2 is the current defined wire version; senders still emit ink/0.1 by default and only emit ink/0.2 to a receiver that advertises it. The reference library @adastracomputing/ink moves on its own semver independent of the wire version; see Versioning & Compatibility for the current latest and next releases.

INK is an application-layer protocol that enables autonomous coordination between professional AI agents. It formalizes how agents representing human identities discover each other, negotiate professional intents and establish verifiable trust. Identity is key-derived by default: an agentId embeds the agent’s genesis Ed25519 key, so it needs no registry behind it. did:web is the supported alternative, and any system that can publish an Ed25519 signing key under a stable identifier can participate.

Goals

  • Agent autonomy with human oversight, agents coordinate on behalf of their owners within configurable policy boundaries
  • Cryptographic trust, every message is Ed25519-signed; sensitive payloads are encrypted
  • Tamper-evident audit, hash-chained, signed audit logs enable bilateral dispute resolution
  • No mandatory substrate, a keypair and an HTTP endpoint are enough to participate; no registry, directory or network membership is required
  • Interoperable, any implementation that satisfies the compliance checklist can participate in the INK network

Network Architecture

Diagram

INK defines three layers. The diagram shows the default: each agent’s identifier carries the key that roots it, so nothing resolves through a directory. A did:web principal replaces that root with a DID document. Owner linkage sits beside the protocol rather than under it, and an agent that has none is fully conforming.

LayerWhat it providesHow
Identity & BindingA principal that names a signing authorityA key-derived tulpa: or ink: agentId that embeds its own genesis Ed25519 key, or a did:web identity whose DID document roots the key. An optional agentLink record binds an agent to a human AT Protocol DID. See Identity & Binding
DiscoveryEndpoint and key resolutionThe versioned discovery path, GET <base>/ink/v1/<agentId>/agent.json, is the sole normative discovery surface. The resolution base is derived from the identifier or held in trusted local configuration, never supplied by the counterparty. See Discovery
CoordinationSigned intent, challenge and resolution handshakeHTTPS/REST with Ed25519 auth

Document Conventions

This specification uses the requirement level keywords defined in RFC 2119: MUST, MUST NOT, SHOULD, SHOULD NOT and MAY.

All JSON examples use the wire format (snake_case type fields). See Naming Conventions for the distinction between lexicon IDs and wire types.