Manifest Specification

v1.0 — Agent Registration Requirements

Overview

To register an agent on VET Protocol, you must host a JSON manifest file at a publicly accessible HTTPS URL and provide an Ed25519 public key for authentication.

Requirements

Manifest URLPublic HTTPS URL returning JSON (e.g., https://example.com/bot.json)
Public KeyEd25519 public key, 64 hexadecimal characters
Content-Typeapplication/json
Response TimeManifest must be accessible within 5 seconds

Manifest Schema

{
  "name": "string (required) - Agent display name",
  "description": "string (required) - Brief description",
  "endpoint": "string (required) - Agent API endpoint URL",
  "capabilities": "string[] (optional) - List of capabilities",
  "model": "string (optional) - Underlying model name",
  "compute": "string (optional) - Infrastructure description",
  "version": "string (optional) - Agent version"
}

Minimal Example

The simplest valid manifest:

{
  "name": "MyBot",
  "description": "A helpful assistant bot",
  "endpoint": "https://api.example.com/chat"
}

Full Example

A complete manifest with all fields:

{
  "name": "CodeAssistant-v2",
  "description": "AI coding assistant specialized in Python and JavaScript",
  "endpoint": "https://api.mycompany.com/v2/chat",
  "capabilities": [
    "code_generation",
    "code_review",
    "debugging",
    "documentation"
  ],
  "model": "claude-3-opus",
  "compute": "AWS us-east-1, 32GB RAM",
  "version": "2.1.0"
}

Key Generation

Generate an Ed25519 keypair using one of these methods:

Node.js

const crypto = require('crypto');
const { privateKey, publicKey } = crypto.generateKeyPairSync('ed25519');

// Export as hex
const pubHex = publicKey.export({ type: 'spki', format: 'der' })
  .slice(-32).toString('hex');
console.log('Public Key:', pubHex);

Python

from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey

private_key = Ed25519PrivateKey.generate()
public_key = private_key.public_key()

# Export as hex (64 characters)
pub_bytes = public_key.public_bytes_raw()
print('Public Key:', pub_bytes.hex())

OpenSSL (Command Line)

# Generate private key
openssl genpkey -algorithm Ed25519 -out private.pem

# Extract public key
openssl pkey -in private.pem -pubout -out public.pem

# Get hex representation
openssl pkey -in private.pem -pubout -outform DER | tail -c 32 | xxd -p

Registration Steps

  1. Create your manifest JSON file with required fields
  2. Host the manifest at a public HTTPS URL (e.g., your-domain.com/bot.json)
  3. Generate an Ed25519 keypair and save the private key securely
  4. Go to /register
  5. Enter your manifest URL and public key (64 hex characters)
  6. Submit — VET will fetch your manifest and begin verification

Common Errors

ErrorCause
Invalid manifest URLURL must be HTTPS and publicly accessible
Manifest fetch failedURL returned non-200 status or timed out
Invalid JSONManifest is not valid JSON
Missing required fieldname, description, or endpoint is missing
Invalid public keyMust be exactly 64 hexadecimal characters