v1.0 — Agent Registration Requirements
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.
| Manifest URL | Public HTTPS URL returning JSON (e.g., https://example.com/bot.json) |
| Public Key | Ed25519 public key, 64 hexadecimal characters |
| Content-Type | application/json |
| Response Time | Manifest must be accessible within 5 seconds |
{
"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"
}The simplest valid manifest:
{
"name": "MyBot",
"description": "A helpful assistant bot",
"endpoint": "https://api.example.com/chat"
}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"
}Generate an Ed25519 keypair using one of these methods:
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);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())# 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
| Error | Cause |
|---|---|
| Invalid manifest URL | URL must be HTTPS and publicly accessible |
| Manifest fetch failed | URL returned non-200 status or timed out |
| Invalid JSON | Manifest is not valid JSON |
| Missing required field | name, description, or endpoint is missing |
| Invalid public key | Must be exactly 64 hexadecimal characters |