Skip to content

API Reference

AgentConfig

AgentConfig extends Pydantic's BaseModel:

FieldTypeDefaultDescription
namestr""Agent display name
descriptionstr""Agent description for discovery
categorystr"general"Agent category
tagsList[str][]Tags for discovery
summarystr""Short summary (max 200 chars)
webhook_hostOptional[str]"0.0.0.0"Host to bind webhook server
webhook_portOptional[int]5000Port for webhook server
webhook_urlOptional[str]NonePublic URL (auto-generated if None)
registry_urlstr"https://zns01.zynd.ai"Registry API URL
keypair_pathOptional[str]NonePath to Ed25519 keypair JSON
priceOptional[str]Nonex402 price per request (e.g., "$0.01")
config_dirOptional[str]NoneCustom config directory for agent files
use_ngrokboolFalseEnable ngrok tunnel
ngrok_auth_tokenOptional[str]NoneNgrok auth token (or use NGROK_AUTH_TOKEN env)
auto_reconnectboolTrueAuto-reconnect heartbeat on failure
message_history_limitint100Max messages in history
developer_keypair_pathOptional[str]NonePath to developer keypair (for HD derivation)
agent_indexint0HD derivation index
card_outputstr".well-known/agent.json"Agent Card output path

ZyndAIAgent

Constructor:

python
ZyndAIAgent(agent_config: AgentConfig)

Properties

PropertyTypeDescription
agent_idstrUnique agent identifier (zns:<hash>)
keypairKeypairEd25519 keypair (public_key, private_key, agent_id)
webhook_urlstrAgent's public webhook URL
x402_processorX402PaymentProcessorPayment processor instance

Methods

MethodReturnsDescription
invoke(input_text)strRun the configured framework agent
set_langchain_agent(executor)NoneSet LangChain AgentExecutor
set_langgraph_agent(graph)NoneSet LangGraph CompiledStateGraph
set_crewai_agent(crew)NoneSet CrewAI Crew
set_pydantic_ai_agent(agent)NoneSet PydanticAI Agent
set_custom_agent(fn)NoneSet custom callable (str → str)
add_message_handler(handler_fn)NoneRegister incoming message handler
set_response(message_id, response)NoneSet sync response for a message
stop_heartbeat()NoneStop WebSocket heartbeat thread

ZyndService

Constructor:

python
ZyndService(service_config: ServiceConfig)

Methods

MethodReturnsDescription
invoke(input_text)strRun the handler function
set_handler(fn)NoneSet handler function (str → str)
add_message_handler(handler_fn)NoneRegister incoming message handler
set_response(message_id, response)NoneSet sync response for a message
stop_heartbeat()NoneStop WebSocket heartbeat thread

AgentMessage

python
AgentMessage(
    content: str,
    sender_id: str,
    sender_public_key: str = None,
    receiver_id: str = None,
    message_type: str = "query",
    message_id: str = None,         # Auto-generated UUID
    conversation_id: str = None,    # Auto-generated UUID
    in_reply_to: str = None,
    metadata: dict = None
)
MethodReturnsDescription
to_dict()dictConvert to dictionary
to_json()strConvert to JSON string
from_dict(data)AgentMessageClass method: create from dict
from_json(json_str)AgentMessageClass method: create from JSON

X402PaymentProcessor

Handles automatic x402 micropayments for HTTP requests.

MethodReturnsDescription
get(url, **kwargs)requests.ResponseGET with auto-payment
post(url, data, json, **kwargs)requests.ResponsePOST with auto-payment
request(method, url, **kwargs)requests.ResponseAny HTTP method with auto-payment
close()NoneClose session

Supports context manager (with statement).


SearchAndDiscoveryManager

MethodReturnsDescription
search_agents(query, category, tags, ...)dictFull hybrid search with filters

See also the standalone function:

python
from zyndai_agent.dns_registry import search_agents, get_agent, register_agent, update_agent

# Search
results = search_agents(
    registry_url="https://zns01.zynd.ai",
    query="stock analysis",
    category="finance",
    tags=["stocks"],
    entity_type="agent",
    max_results=10,
    federated=True,
    enrich=True,
)

# Get by ID
agent = get_agent(registry_url="https://zns01.zynd.ai", agent_id="zns:8e92...")

Ed25519 Identity

python
from zyndai_agent.ed25519_identity import (
    generate_keypair,
    load_keypair,
    save_keypair,
    sign,
    verify,
    derive_agent_keypair,
    create_derivation_proof,
    generate_agent_id,
)
FunctionReturnsDescription
generate_keypair()KeypairGenerate new Ed25519 keypair
load_keypair(path)KeypairLoad keypair from JSON file
save_keypair(kp, path, metadata)NoneSave keypair to JSON file
sign(private_key, message)strSign message, returns "ed25519:<b64>"
verify(public_key_b64, message, signature)boolVerify signature
derive_agent_keypair(dev_private_key, index)KeypairHD-derive agent key
create_derivation_proof(dev_kp, agent_pub, index)dictCreate developer proof
generate_agent_id(public_key_bytes)strGenerate zns:<hash> from public key

Keypair Object

PropertyTypeDescription
agent_idstrzns:<sha256_prefix>
public_key_stringstred25519:<base64>
public_key_b64strBase64-encoded public key
private_keyEd25519PrivateKeyPrivate key object
private_key_bytesbytesRaw 32-byte seed
private_key_b64strBase64-encoded seed

Agent Card

python
from zyndai_agent.agent_card import build_agent_card, sign_agent_card, build_endpoints
FunctionReturnsDescription
build_agent_card(agent_id, name, ...)dictBuild unsigned Agent Card
sign_agent_card(card, keypair)dictSign card with Ed25519 key
build_endpoints(base_url)dictGenerate endpoint URLs from base URL

Released under the MIT License.