A clear path from
request to receipt.
Connect Vigil to your agent workflows. Start with the control toolkit, or integrate paid source verification through Agent Commerce.
Get your key.
Create a free account with a unique handle. The response contains your API key, account handle, tier, and limits. The key is issued once; save it in a password manager or secret store.
curl https://vigilnotary.com/v1/register \
-H 'Content-Type: application/json' \
-d '{"handle":"your-agent-name"}'Handles accept letters, numbers, hyphens, and underscores, up to 64 characters. Use a lowercase handle starting with a letter or number. There is no email or password recovery.
Use Authorization: Bearer <your-key> for authenticated REST calls. Examples below reference a VIGIL_KEY variable supplied by your secret store; do not commit the key or put it in browser code.
Grant a lease. Gate the action.
A lease scopes an agent’s permission to an action and a limited lifetime. The lim field describes a policy your gateway must parse and enforce; it is not an automatic provider-side spending limit.
curl https://vigilnotary.com/v1/lease \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $VIGIL_KEY" \
-d '{"agent":"refund-bot","action":"stripe.refund",
"ttl_s":600,"lim":"amount<=50usd"}'Your gateway holds the provider credentials and verifies the signature, intended agent/action, policy, expiry, and signed recheck_by_ms before forwarding. Offline authorization ends at that recheck deadline, at most 30 seconds after grant or renewal. Online revocation checks can detect changes sooner.
curl -X POST "https://vigilnotary.com/v1/lease/$LEASE_ID/revoke" \
-H "Authorization: Bearer $VIGIL_KEY"Revocation applies only to actions routed through a correctly enforcing gateway. It does not undo completed actions or block an agent that has independent provider credentials.
Keep a verifiable trail.
Hash your record in your own client, then submit the SHA-256 digest for an Ed25519-signed receipt. The optional label is public: keep it free of private data.
curl https://vigilnotary.com/v1/receipt \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $VIGIL_KEY" \
-d "{\"subject_sha256\":\"$SUBJECT_SHA256\",\"label\":\"agent-action\"}"Receipts link into a hash chain. Read GET /v1/chain-head and pin that head. Export a range with GET /v1/chain?from=1&to=1000, then request successive ranges through the pinned head. Each request accepts at most 1,000 receipts; the bare chain endpoint defaults to receipt 1. Obtain the current public signing key from the signing guide and confirm it through an independently trusted channel. Keep historically trusted keys when signers rotate.
A receipt authenticates a submitted digest and Vigil’s clock assertion. It does not independently establish that the underlying action occurred. Pro calendar submissions and raw proof export do not constitute verified Bitcoin confirmation.
Watch for missing check-ins.
Configure a watchdog with an expected interval and a public HTTPS webhook. Send heartbeats while your agent is healthy. An absent heartbeat triggers a signed webhook alert, with retry and backoff.
curl -X PUT https://vigilnotary.com/v1/watchdog/my-agent \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $VIGIL_KEY" \
-d '{"interval_s":300,"webhook_url":"https://your-service.example/alerts"}'
curl -X POST https://vigilnotary.com/v1/heartbeat/my-agent \
-H "Authorization: Bearer $VIGIL_KEY"Replace the example webhook with your own endpoint. Verify received alerts before trusting them. A monitor’s usefulness depends on your agent sending heartbeats and your alert endpoint being available.
Encrypt before you upload.
Journal slots store opaque bytes, up to 64 KiB per slot. Encrypt in your own client and retain the encryption key. Vigil does not encrypt your plaintext automatically or enforce that uploads are ciphertext.
curl -X PUT https://vigilnotary.com/v1/journal/context \
-H 'Content-Type: application/octet-stream' \
-H "Authorization: Bearer $VIGIL_KEY" \
--data-binary @context.encryptedRead or remove the same slot with authenticated GET or DELETE. List your slots with GET /v1/journal.
Buy a source check.
Submit one public HTTPS source URL and one claim. The current price is $0.03 USDC per verification, paid through x402 on Base or Solana. This purchase is separate from Dev and Pro subscriptions.
Read the plain-language service status before purchasing. Payment-aware software can use the linked machine-readable data for the exact price, network identifiers, methodology, and schemas. Your client controls its wallet and spending policy.
# Save this unpredictable key and reuse it for this request.
REQUEST_KEY="$(uuidgen)"
curl -i https://vigilnotary.com/api/agent/v1/verify-source \
-H 'Content-Type: application/json' \
-H "Idempotency-Key: $REQUEST_KEY" \
-d '{
"source_url":"https://example.org/article",
"claim":"The article states that enrollment increased in 2025.",
"options":{"max_price_usd":"0.03"}
}'This step prepares the exact payment terms; it does not charge the wallet. Replace the example source and claim. A valid request returns HTTP 402 with a base64 JSON PAYMENT-REQUIRED header and structured payment requirements. The verification costs $0.03 only after the wallet authorizes the payment and the paid request settles.
- Validate the recipient, USDC asset, amount, network, and expiry against your wallet policy.
- Authorize payment with an x402-aware client.
- Retry the identical payload and idempotency key with
PAYMENT-SIGNATURE. - Retain the completed result, payment response, signed receipt, and any
X-Vigil-Recovery-Token.
If the response is lost, preserve the original payment proof and idempotency key. Retrieve the private result with GET /api/agent/v1/requests/{request_id} and its recovery bearer token, or retry the original POST. An uncertain payment is not a reason to authorize another charge.
The full request schema, response fields, error codes, and payment metadata are explained in the Agent API reference.
Source support is a bounded answer.
Vigil retrieves a supported public source, then uses Anthropic-powered semantic assessment to determine whether that text supports the supplied claim. Exact quotations are checked against retained normalized text.
| Outcome | Meaning |
|---|---|
supports | The retrieved source supports the claim. |
contradicts | The source contains evidence against the claim. |
mixed | The source provides mixed evidence. |
insufficient_evidence | The source does not provide enough valid evidence. |
not_assessed | A semantic assessment was not made. |
Results include exact quotations, text offsets, hashes, observed URLs, source freshness, methodology, and risk flags. Publisher identity remains unknown and confidence remains null. TLS validates the connection to the hostname; it does not establish the publisher’s credibility.
An inaccurate source can support an inaccurate claim. Missing context, ambiguity, stale material, or truncation can limit the conclusion. Your client decides whether the evidence is sufficient for its next action.
Retrieval supports public HTTPS on port 443, HTML and plain text only. It does not browse authenticated pages, execute JavaScript, process PDFs, or crawl links. Private, local, metadata, and other restricted destinations are blocked.
One MCP endpoint.
Connect your MCP client to https://vigilnotary.com/mcp using Streamable HTTP. Inspect tools/list for the deployed inventory: 25 agent-control tools plus vigil_verify_source when Agent Commerce MCP access is enabled.
curl https://vigilnotary.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'For legacy tools, pass vigil_key in the tool arguments where required. For Agent Commerce, put retry and payment metadata on params._meta:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "vigil_verify_source",
"arguments": {
"source_url": "https://example.org/article",
"claim": "The article states that enrollment increased in 2025."
},
"_meta": {
"vigil/idempotency-key": "REPLACE_WITH_A_RANDOM_REQUEST_KEY"
}
}
}On the paid retry, add the original authorization JSON under params._meta["x402/payment"]. An ordinary MCP connection does not authorize payments; you need a payment-aware wallet integration. Inspect structuredContent and payment metadata, not just the JSON-RPC transport status.
Choose your capacity.
Free accounts have one active lease, 10 receipts per day, one watchdog, and four journal slots. Dev is $29/month; Pro is $99/month. See all plan limits or read the pricing page.
curl https://vigilnotary.com/v1/checkout \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $VIGIL_KEY" \
-d '{"tier":"dev"}'Use "pro" for Pro. Open the returned checkout_url; it is bound to your account and selected tier. After confirmed payment, the same key gains the new limits. Confirm your tier with authenticated GET /v1/usage or on your account page.
USDC source-verification purchases are independent of your human subscription.
Separate responsibilities.
Explicit guarantees.
- Your gateway: holds execution-provider keys and enforces leases and action policy.
- Vigil signer: issues permissions and tamper-evident receipts for submitted records.
- Isolated retriever: fetches supported public sources with destination and redirect validation.
- Semantic assessor: assesses the supplied source and claim; it has no payment authority or browsing tools.
- Your payment client: controls wallet authorization, price limits, and recovery credentials.
- Your journal client: encrypts private content before upload and keeps the encryption key.
Keep API keys, wallet signing material, and recovery tokens out of public code and logs. No independent audit, certification, or absolute-truth guarantee is implied by these controls.
Read the live-service guide →