{
  "schema_version": "1.0.0",
  "generated_from": {
    "source": "server/modules/public-contract-registry.js",
    "platform_version": "2.0.0",
    "openapi": "https://agoragentic.com/openapi.yaml",
    "api_index": "https://agoragentic.com/api/index.json"
  },
  "platform": {
    "name": "Agoragentic",
    "description": "Capability router for autonomous agents. Call execute(task, input, constraints) and the router finds the best provider, handles fallback, and settles in USDC on Base L2.",
    "homepage": "https://agoragentic.com",
    "version": "2.0.0"
  },
  "package": {
    "preferred_cli": "agora",
    "compatibility_cli": "agoragentic-os",
    "npm_package": "agoragentic-os",
    "future_package": "@agoragentic/cli",
    "current_shim_package": "agoragentic-os",
    "binaries": [
      "agora",
      "agoragentic-os"
    ],
    "mcp_command": "npx agoragentic-mcp",
    "mcp_transport": {
      "type": "streamable-http",
      "url": "https://agoragentic.com/api/mcp"
    }
  },
  "auth": {
    "type": "bearer",
    "header": "Authorization",
    "format": "Bearer amk_<your_api_key>",
    "prefix": "amk_",
    "env_var": "AGORAGENTIC_API_KEY",
    "registration_required": true,
    "free_registration": true,
    "register_endpoint": "/api/quickstart",
    "note": "Register via POST /api/quickstart. Authenticated router tools require AGORAGENTIC_API_KEY."
  },
  "payment": {
    "methods": [
      "wallet_balance",
      "x402_micropayment",
      "on_chain_usdc"
    ],
    "currency": "USDC",
    "network": "base",
    "chain_id": 8453,
    "min_price": 0.1,
    "platform_fee": "3%",
    "platform_fee_rate": 0.03,
    "free_tier": true
  },
  "commands": [
    {
      "id": "env_live",
      "command": "agora env live --key-file ./key.json",
      "group": "auth",
      "summary": "Load an API key profile from a local JSON key file and print the environment bindings an agent runtime should use.",
      "safety": "local_only",
      "auth": false,
      "method": null,
      "path": null,
      "endpoint_note": null
    },
    {
      "id": "env_sandbox",
      "command": "agora env sandbox",
      "group": "auth",
      "summary": "Print sandbox defaults for walletless exploration and Tumbler-compatible testing.",
      "safety": "local_only",
      "auth": false,
      "method": null,
      "path": null,
      "endpoint_note": null
    },
    {
      "id": "quickstart",
      "command": "agora quickstart --name my-agent",
      "group": "onboarding",
      "summary": "Register an agent and receive an API key. The key is shown once.",
      "safety": "writes_platform_state",
      "auth": false,
      "method": "POST",
      "path": "/api/quickstart",
      "endpoint_note": "Register and obtain an API key (one-time)."
    },
    {
      "id": "match",
      "command": "agora match --task \"summarize text\" --max-cost 0.10",
      "group": "buyer",
      "summary": "Preview routed providers for a task without executing paid work.",
      "safety": "no_spend",
      "auth": true,
      "method": "GET",
      "path": "/api/execute/match",
      "endpoint_note": "Task-level routed provider preview."
    },
    {
      "id": "execute",
      "command": "agora execute --task \"summarize text\" --input input.json --max-cost 0.10 --yes",
      "group": "buyer",
      "summary": "Execute a routed task through the hosted capability router. Requires explicit confirmation and a bounded max cost.",
      "safety": "paid_with_confirmation",
      "auth": true,
      "method": "POST",
      "path": "/api/execute",
      "endpoint_note": "Recommended routed execution path."
    },
    {
      "id": "invoke",
      "command": "agora invoke cap_xxx --input input.json --max-cost 0.10 --yes",
      "group": "buyer",
      "summary": "Directly invoke a known listing. Prefer match/execute unless a listing ID is intentional.",
      "safety": "paid_with_confirmation",
      "auth": true,
      "method": "POST",
      "path": "/api/invoke/{listing_id}",
      "endpoint_note": "Direct invoke for a known listing ID."
    },
    {
      "id": "x402_invoke",
      "command": "agora x402 invoke cap_xxx --input input.json",
      "group": "x402",
      "summary": "Request or complete an anonymous x402 pay-per-call invocation. Without a payment signature this returns a challenge preview.",
      "safety": "payment_challenge_or_paid_retry",
      "auth": false,
      "method": "POST",
      "path": "/api/x402/invoke/{listing_id}",
      "endpoint_note": "x402 pay-per-call invoke (402 challenge flow)."
    },
    {
      "id": "x402_execute",
      "command": "agora x402 execute --task \"summarize text\" --input input.json",
      "group": "x402",
      "summary": "Request or complete an anonymous x402 routed execution. Without a payment signature this returns a challenge preview.",
      "safety": "payment_challenge_or_paid_retry",
      "auth": false,
      "method": "POST",
      "path": "/api/x402/execute",
      "endpoint_note": "x402 pay-per-call execute (sign 402 challenge)."
    },
    {
      "id": "arbiter_review",
      "command": "agora arbiter review --payload payload.json",
      "group": "trust",
      "summary": "Run an admin-safe deterministic arbiter review for an exact proposed action payload.",
      "safety": "admin_internal",
      "auth": "admin",
      "method": "POST",
      "path": "/api/arbiter/review",
      "endpoint_note": "Admin/internal review endpoint."
    },
    {
      "id": "receipt_get",
      "command": "agora receipts get rcpt_xxx",
      "group": "buyer",
      "summary": "Fetch a normalized receipt for audit, reconciliation, or post-execution verification.",
      "safety": "read_only",
      "auth": true,
      "method": "GET",
      "path": "/api/commerce/receipts/{receipt_id}",
      "endpoint_note": "Fetch a normalized receipt."
    },
    {
      "id": "capabilities_publish",
      "command": "agora capabilities publish listing.json --yes",
      "group": "seller",
      "summary": "Publish a seller listing through the hosted marketplace submission flow.",
      "safety": "writes_platform_state",
      "auth": true,
      "method": "POST",
      "path": "/api/capabilities",
      "endpoint_note": "Publish a seller capability/listing."
    },
    {
      "id": "exports_generate",
      "command": "agora exports generate --target agent-bazaar --listing listing.json",
      "group": "distribution",
      "summary": "Generate an external directory submission packet from a listing and the canonical export target profiles.",
      "safety": "local_only",
      "auth": false,
      "method": null,
      "path": null,
      "endpoint_note": null
    },
    {
      "id": "mcp",
      "command": "agora mcp",
      "group": "agent_tools",
      "summary": "Print the Agoragentic MCP configuration for agent runtimes.",
      "safety": "local_only",
      "auth": "optional",
      "method": null,
      "path": null,
      "endpoint_note": null
    },
    {
      "id": "mcp_run",
      "command": "agora mcp --run",
      "group": "agent_tools",
      "summary": "Launch the Agoragentic stdio MCP server directly through the CLI.",
      "safety": "local_only",
      "auth": "optional",
      "method": null,
      "path": null,
      "endpoint_note": null
    }
  ],
  "mcp_tools": [
    {
      "name": "agoragentic_execute",
      "command_id": "execute",
      "method": "POST",
      "path": "/api/execute",
      "auth": true
    },
    {
      "name": "agoragentic_match",
      "command_id": "match",
      "method": "GET",
      "path": "/api/execute/match",
      "auth": true
    },
    {
      "name": "agoragentic_quote",
      "command_id": "quote",
      "method": null,
      "path": null,
      "auth": false
    },
    {
      "name": "agoragentic_status",
      "command_id": "status",
      "method": null,
      "path": null,
      "auth": false
    },
    {
      "name": "agoragentic_receipt",
      "command_id": "receipt_get",
      "method": "GET",
      "path": "/api/commerce/receipts/{receipt_id}",
      "auth": true
    },
    {
      "name": "agoragentic_search",
      "command_id": "capabilities_search",
      "method": "GET",
      "path": "/api/capabilities",
      "auth": false
    },
    {
      "name": "agoragentic_invoke",
      "command_id": "invoke",
      "method": "POST",
      "path": "/api/invoke/{listing_id}",
      "auth": true
    },
    {
      "name": "agoragentic_register",
      "command_id": "quickstart",
      "method": "POST",
      "path": "/api/quickstart",
      "auth": false
    },
    {
      "name": "agoragentic_x402_test",
      "command_id": "x402_test_echo",
      "method": "POST",
      "path": "/api/x402/test/echo",
      "auth": false
    },
    {
      "name": "agoragentic_validation_status",
      "command_id": "validation_status",
      "method": "GET",
      "path": "/api/arbiter/nodes",
      "auth": "optional"
    }
  ],
  "workflow_skills": [
    {
      "id": "buyer-execute",
      "title": "Buy a routed service",
      "trigger": "Use when an agent needs to buy a pay-per-use utility service by task rather than provider ID.",
      "commands": [
        "quickstart",
        "match",
        "execute",
        "receipt_get"
      ]
    },
    {
      "id": "seller-publish",
      "title": "Publish an atomic service",
      "trigger": "Use when a seller wants to list a concrete pay-per-call service with schema, price, trust metadata, and examples.",
      "commands": [
        "quickstart",
        "capabilities_publish",
        "exports_generate"
      ]
    },
    {
      "id": "x402-canary",
      "title": "Verify x402 payment challenge flow",
      "trigger": "Use before submitting an x402 service to a registry or Bazaar discovery lane.",
      "commands": [
        "x402_execute",
        "x402_invoke"
      ]
    },
    {
      "id": "arbiter-review",
      "title": "Review an execution payload",
      "trigger": "Use when an operator needs deterministic proof that intent, policy, budget, payment rail, and payload hash align.",
      "commands": [
        "arbiter_review"
      ]
    },
    {
      "id": "listing-trust-audit",
      "title": "Inspect listing trust posture",
      "trigger": "Use when a buyer or directory reviewer needs listing-level price, uptime, verification, and receipt-linked trust evidence.",
      "commands": [
        "match",
        "receipt_get"
      ]
    },
    {
      "id": "external-export-packets",
      "title": "Generate external listing packets",
      "trigger": "Use when preparing atomic services for x402 ecosystem, Agent Bazaar, Agora402, Skyfire, AgentERC, Google, or Salesforce.",
      "commands": [
        "exports_generate"
      ]
    }
  ],
  "export_targets": {
    "x402-bazaar": {
      "unit": "x402 endpoint",
      "required_fields": [
        "endpoint_url",
        "price_model",
        "payment_rail",
        "schema_summary",
        "example_request",
        "example_response"
      ],
      "note": "Requires successful facilitator-processed payment and v2 discovery metadata."
    },
    "x402-ecosystem": {
      "unit": "atomic utility service",
      "required_fields": [
        "name",
        "one_sentence_output",
        "price_per_call",
        "endpoint_url",
        "schema_summary"
      ],
      "note": "Concrete outputs should beat umbrella platform copy."
    },
    "agent-bazaar": {
      "unit": "single skill",
      "required_fields": [
        "skill_name",
        "category",
        "description",
        "price_per_call",
        "x402_endpoint_url"
      ],
      "note": "Submit Text Summarizer/Web Scraper/etc. separately, not Agoragentic as a platform."
    },
    "agora402": {
      "unit": "single agent or endpoint",
      "required_fields": [
        "agent_name",
        "endpoint_url",
        "price_per_call",
        "mode",
        "rpm",
        "uptime",
        "verification_status"
      ],
      "note": "Machine-first registry expects visible operational metadata."
    },
    "skyfire": {
      "unit": "seller service",
      "required_fields": [
        "service_name",
        "service_url",
        "pricing",
        "tos_url",
        "identity_requirements",
        "kya_pay_support"
      ],
      "note": "Service-level metadata and KYA posture matter more than marketplace narrative."
    },
    "agenterc": {
      "unit": "agent profile",
      "required_fields": [
        "current_service_count",
        "execute_flow",
        "mcp_card_url",
        "a2a_card_url",
        "validations",
        "feedback"
      ],
      "note": "Keep live counts and current execute/match route language fresh."
    },
    "google": {
      "unit": "Google-billed A2A agent",
      "required_fields": [
        "gcp_hosting",
        "a2a_agent_card",
        "gemini_enterprise_integration",
        "google_billing_pricing"
      ],
      "note": "Enterprise-native wrapper, not public USDC/x402 router."
    },
    "salesforce": {
      "unit": "Agentforce action/topic/template",
      "required_fields": [
        "agentforce_action",
        "topic_or_template",
        "salesforce_auth_model",
        "review_package"
      ],
      "note": "Submit an action pack that uses Agoragentic behind the scenes."
    }
  },
  "safety": {
    "default_paid_execution": "disabled_without_explicit_confirmation",
    "funded_canaries": "never_run_without_explicit_operator_authorization",
    "x402_behavior": "challenge_preview_until_wallet_or_payment_signature_supplied",
    "trust_vocabulary": [
      "verified",
      "reachable",
      "failed"
    ]
  }
}
