Skip to adapter guide
Developer guideVintraa protocol guidePublic API
Executable adapter

A2A JSON-RPC skill

Use an A2A Agent Card to expose an exact reviewed JSON-RPC skill. Vintraa currently publishes only unauthenticated skills that a publisher has explicitly confirmed are read-only.

Adapter
a2a-jsonrpc-v1
Runtime
REMOTE_A2A
Inspection type
A2A_AGENT_CARD
Source
Public A2A Agent Card URL
Current boundary

What Vintraa can publish

  • A public HTTPS Agent Card with at least one skill and a JSON-RPC interface.
  • A2A protocol version 0.x or 1.x at one exact reviewed endpoint.
  • Skills explicitly changed from the conservative imported default to readOnly: true after review.
  • No Agent Card authentication and no post-execution approval requirement.
1 · Expose

Serve the source contract publicly

Replace the example host and identifiers with your own. Do not add API keys, tokens, customer secrets, or signing private keys to the source contract.

Source examplejson
{
  "name": "Care Rota Status",
  "description": "Reads the current status of an approved rota.",
  "version": "1.0.0",
  "protocolVersion": "1.0.0",
  "supportedInterfaces": [
    {
      "url": "https://agent.example.com/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0.0"
    }
  ],
  "defaultInputModes": ["text/plain"],
  "defaultOutputModes": ["application/json"],
  "skills": [
    {
      "id": "lookup_rota_status",
      "name": "Lookup rota status",
      "description": "Reads the current status without changing the rota.",
      "tags": ["rota", "read-only"]
    }
  ]
}
2 · Inspect

Ask Vintraa to normalize it

Run this after the authentication example on the main developer page. An active publisher membership is required. The returned inspection is the source of truth.

Inspection requestbash · curl + jq
# Continue in the same shell after signing in and creating a publisher.
export VINTRAA_PUBLISHER_ID="replace-with-your-publisher-id"
export A2A_AGENT_CARD_URL="https://agent.example.com/replace-this"

curl --fail-with-body --silent --show-error \
  --request POST \
  --header "Authorization: Bearer $VINTRAA_TOKEN" \
  --header 'Content-Type: application/json' \
  --data "$(jq -nc \
    --arg source "$A2A_AGENT_CARD_URL" \
    '{sourceType:"A2A_AGENT_CARD",source:$source}')" \
  "$VINTRAA_API/publishers/$VINTRAA_PUBLISHER_ID/agent-import-inspections" | jq
3 · Review

Confirm the publishable binding

These examples show the bounded binding required at publication. Compare every field with Vintraa's inspection result and your deployed behavior.

Normalized bindingjson
{
  "type": "a2a-skill",
  "skillId": "lookup_rota_status",
  "securityRequired": false,
  "readOnly": true
}
Representative sandbox inputjson
{
  "message": "What is the current status of rota rota_123?"
}
Runtime behavior

What Vintraa sends

  • 01

    For A2A 0.x Vintraa calls message/send; for 1.x it calls SendMessage.

  • 02

    Requests use application/a2a+json and carry the reviewed action and skill identifiers in metadata.

  • 03

    Imported A2A bindings start with readOnly: false. A publisher must review the behavior and explicitly attest read-only status before publication.

Rejected at publication or runtime

Not currently publishable

  • Authenticated Agent Cards or customer/developer credential passthrough.
  • Mutating skills, result-only approval, protocol majors other than 0 or 1, or endpoint drift.
  • Treating an Agent Card declaration as proof that a skill is side-effect free.
4 · Exercise and submit

Publication checklist

  1. 01

    The Agent Card and selected JSON-RPC endpoint are public HTTPS URLs.

  2. 02

    The card has no authentication requirement and the selected protocol is 0.x or 1.x.

  3. 03

    Every retained skill has been behaviorally reviewed and explicitly marked read-only.

  4. 04

    The sandbox run proves the exact reviewed skill works without side effects or credentials.