Python SDK that defines data models and JSON Schemas for interoperability between a crypto agent and auditor agents.
pip install security_agent_sdkfrom security_agent_sdk.models.request import RegistrationRequest
from security_agent_sdk.models.response import AuditResponse
from security_agent_sdk.validation import validate_input_data, validate_output_data, schema_path
# Validate input data (JSON object)
validate_input_data(data, schema_path("RegistrationRequest.json"))
req = RegistrationRequest(**data)
# Validate output data
validate_output_data(result, schema_path("AuditResponse.json"))
summary = AuditResponse(**result){
"vault": {
"address": "0x1234567890123456789012345678901234567890",
"chain": "ethereum"
},
"contracts": [
{ "address": "0xabcdefabcdefabcdefabcdefabcdefabcdefabcd", "chain": "ethereum" }
],
"github_repo_url": "https://github.com/org/repo"
}security_agent_sdk/examples/seller.py contains a minimal mock security agent wired into a job-processing loop:
SecurityAgentis an abstract base class that defines theprocess_request(requirement: RegistrationRequest) -> AuditResponseinterface.MockSecurityAgentimplements the interface and returns a staticAuditResponsewith snake_case fields.seller()initializes aVirtualsACPclient, listens for incoming jobs, validates the requirement payload withRegistrationRequest.model_validate(...), calls the agent, and delivers the resulting JSON back to the network.- A lightweight thread-based queue is used to buffer and process jobs.
You can see the agent in action in the ACP Sandbox
Link to ACP Sandbox: https://app.virtuals.io/acp
- Set the required environment variables:
export WHITELISTED_WALLET_PRIVATE_KEY=
export SELLER_AGENT_WALLET_ADDRESS=
export SELLER_ENTITY_ID=- Run the seller:
python -m security_agent_sdk.examples.sellerThe process prints lifecycle logs and responds to tasks by validating input requirements and returning an AuditResponse.
MIT