Verify an x402 v2 payment payload
curl --request POST \
--url https://facilitator.x84.ai/verify \
--header 'Content-Type: application/json' \
--data '
{
"paymentPayload": {
"x402Version": 1,
"accepted": {
"scheme": "exact",
"network": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
"asset": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
"amount": "1000000",
"payTo": "8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9",
"maxTimeoutSeconds": 60,
"resource": "https://api.x84.ai/a2a/agent-abc/tasks/send",
"description": "Query agent-abc for market analysis",
"extra": {
"feePayer": "7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX",
"name": "Agent Query Fee",
"agentMint": "6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS",
"programId": "X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi",
"settlementModes": [
"atomic",
"attestation",
"delegated"
]
}
},
"payload": {
"transaction": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjwuBdojnm..."
},
"resource": "https://api.x84.ai/a2a/agent-abc/tasks/send",
"extensions": {
"mode": "atomic",
"receiptPda": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
"delegationPda": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"delegate": "D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu",
"signature": "<string>",
"timestamp": 1708700000,
"paymentId": "a1b2c3d4e5f6",
"txSignature": "5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW",
"payer": "D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu",
"amount": "1000000"
}
},
"paymentRequirements": {
"scheme": "exact",
"network": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
"asset": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
"amount": "1000000",
"payTo": "8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9",
"maxTimeoutSeconds": 60,
"resource": "https://api.x84.ai/a2a/agent-abc/tasks/send",
"description": "Query agent-abc for market analysis",
"extra": {
"feePayer": "7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX",
"name": "Agent Query Fee",
"agentMint": "6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS",
"programId": "X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi",
"settlementModes": [
"atomic",
"attestation",
"delegated"
]
}
}
}
'import requests
url = "https://facilitator.x84.ai/verify"
payload = {
"paymentPayload": {
"x402Version": 1,
"accepted": {
"scheme": "exact",
"network": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
"asset": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
"amount": "1000000",
"payTo": "8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9",
"maxTimeoutSeconds": 60,
"resource": "https://api.x84.ai/a2a/agent-abc/tasks/send",
"description": "Query agent-abc for market analysis",
"extra": {
"feePayer": "7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX",
"name": "Agent Query Fee",
"agentMint": "6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS",
"programId": "X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi",
"settlementModes": ["atomic", "attestation", "delegated"]
}
},
"payload": { "transaction": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjwuBdojnm..." },
"resource": "https://api.x84.ai/a2a/agent-abc/tasks/send",
"extensions": {
"mode": "atomic",
"receiptPda": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
"delegationPda": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"delegate": "D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu",
"signature": "<string>",
"timestamp": 1708700000,
"paymentId": "a1b2c3d4e5f6",
"txSignature": "5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW",
"payer": "D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu",
"amount": "1000000"
}
},
"paymentRequirements": {
"scheme": "exact",
"network": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
"asset": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
"amount": "1000000",
"payTo": "8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9",
"maxTimeoutSeconds": 60,
"resource": "https://api.x84.ai/a2a/agent-abc/tasks/send",
"description": "Query agent-abc for market analysis",
"extra": {
"feePayer": "7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX",
"name": "Agent Query Fee",
"agentMint": "6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS",
"programId": "X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi",
"settlementModes": ["atomic", "attestation", "delegated"]
}
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
paymentPayload: {
x402Version: 1,
accepted: {
scheme: 'exact',
network: 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
asset: 'Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr',
amount: '1000000',
payTo: '8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9',
maxTimeoutSeconds: 60,
resource: 'https://api.x84.ai/a2a/agent-abc/tasks/send',
description: 'Query agent-abc for market analysis',
extra: {
feePayer: '7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX',
name: 'Agent Query Fee',
agentMint: '6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS',
programId: 'X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi',
settlementModes: ['atomic', 'attestation', 'delegated']
}
},
payload: {
transaction: 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjwuBdojnm...'
},
resource: 'https://api.x84.ai/a2a/agent-abc/tasks/send',
extensions: {
mode: 'atomic',
receiptPda: '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU',
delegationPda: '9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin',
delegate: 'D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu',
signature: '<string>',
timestamp: 1708700000,
paymentId: 'a1b2c3d4e5f6',
txSignature: '5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW',
payer: 'D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu',
amount: '1000000'
}
},
paymentRequirements: {
scheme: 'exact',
network: 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
asset: 'Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr',
amount: '1000000',
payTo: '8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9',
maxTimeoutSeconds: 60,
resource: 'https://api.x84.ai/a2a/agent-abc/tasks/send',
description: 'Query agent-abc for market analysis',
extra: {
feePayer: '7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX',
name: 'Agent Query Fee',
agentMint: '6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS',
programId: 'X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi',
settlementModes: ['atomic', 'attestation', 'delegated']
}
}
})
};
fetch('https://facilitator.x84.ai/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://facilitator.x84.ai/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'paymentPayload' => [
'x402Version' => 1,
'accepted' => [
'scheme' => 'exact',
'network' => 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
'asset' => 'Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr',
'amount' => '1000000',
'payTo' => '8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9',
'maxTimeoutSeconds' => 60,
'resource' => 'https://api.x84.ai/a2a/agent-abc/tasks/send',
'description' => 'Query agent-abc for market analysis',
'extra' => [
'feePayer' => '7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX',
'name' => 'Agent Query Fee',
'agentMint' => '6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS',
'programId' => 'X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi',
'settlementModes' => [
'atomic',
'attestation',
'delegated'
]
]
],
'payload' => [
'transaction' => 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjwuBdojnm...'
],
'resource' => 'https://api.x84.ai/a2a/agent-abc/tasks/send',
'extensions' => [
'mode' => 'atomic',
'receiptPda' => '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU',
'delegationPda' => '9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin',
'delegate' => 'D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu',
'signature' => '<string>',
'timestamp' => 1708700000,
'paymentId' => 'a1b2c3d4e5f6',
'txSignature' => '5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW',
'payer' => 'D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu',
'amount' => '1000000'
]
],
'paymentRequirements' => [
'scheme' => 'exact',
'network' => 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
'asset' => 'Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr',
'amount' => '1000000',
'payTo' => '8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9',
'maxTimeoutSeconds' => 60,
'resource' => 'https://api.x84.ai/a2a/agent-abc/tasks/send',
'description' => 'Query agent-abc for market analysis',
'extra' => [
'feePayer' => '7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX',
'name' => 'Agent Query Fee',
'agentMint' => '6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS',
'programId' => 'X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi',
'settlementModes' => [
'atomic',
'attestation',
'delegated'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://facilitator.x84.ai/verify"
payload := strings.NewReader("{\n \"paymentPayload\": {\n \"x402Version\": 1,\n \"accepted\": {\n \"scheme\": \"exact\",\n \"network\": \"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1\",\n \"asset\": \"Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr\",\n \"amount\": \"1000000\",\n \"payTo\": \"8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9\",\n \"maxTimeoutSeconds\": 60,\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"description\": \"Query agent-abc for market analysis\",\n \"extra\": {\n \"feePayer\": \"7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX\",\n \"name\": \"Agent Query Fee\",\n \"agentMint\": \"6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS\",\n \"programId\": \"X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi\",\n \"settlementModes\": [\n \"atomic\",\n \"attestation\",\n \"delegated\"\n ]\n }\n },\n \"payload\": {\n \"transaction\": \"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjwuBdojnm...\"\n },\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"extensions\": {\n \"mode\": \"atomic\",\n \"receiptPda\": \"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU\",\n \"delegationPda\": \"9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin\",\n \"delegate\": \"D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu\",\n \"signature\": \"<string>\",\n \"timestamp\": 1708700000,\n \"paymentId\": \"a1b2c3d4e5f6\",\n \"txSignature\": \"5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW\",\n \"payer\": \"D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu\",\n \"amount\": \"1000000\"\n }\n },\n \"paymentRequirements\": {\n \"scheme\": \"exact\",\n \"network\": \"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1\",\n \"asset\": \"Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr\",\n \"amount\": \"1000000\",\n \"payTo\": \"8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9\",\n \"maxTimeoutSeconds\": 60,\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"description\": \"Query agent-abc for market analysis\",\n \"extra\": {\n \"feePayer\": \"7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX\",\n \"name\": \"Agent Query Fee\",\n \"agentMint\": \"6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS\",\n \"programId\": \"X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi\",\n \"settlementModes\": [\n \"atomic\",\n \"attestation\",\n \"delegated\"\n ]\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://facilitator.x84.ai/verify")
.header("Content-Type", "application/json")
.body("{\n \"paymentPayload\": {\n \"x402Version\": 1,\n \"accepted\": {\n \"scheme\": \"exact\",\n \"network\": \"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1\",\n \"asset\": \"Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr\",\n \"amount\": \"1000000\",\n \"payTo\": \"8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9\",\n \"maxTimeoutSeconds\": 60,\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"description\": \"Query agent-abc for market analysis\",\n \"extra\": {\n \"feePayer\": \"7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX\",\n \"name\": \"Agent Query Fee\",\n \"agentMint\": \"6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS\",\n \"programId\": \"X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi\",\n \"settlementModes\": [\n \"atomic\",\n \"attestation\",\n \"delegated\"\n ]\n }\n },\n \"payload\": {\n \"transaction\": \"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjwuBdojnm...\"\n },\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"extensions\": {\n \"mode\": \"atomic\",\n \"receiptPda\": \"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU\",\n \"delegationPda\": \"9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin\",\n \"delegate\": \"D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu\",\n \"signature\": \"<string>\",\n \"timestamp\": 1708700000,\n \"paymentId\": \"a1b2c3d4e5f6\",\n \"txSignature\": \"5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW\",\n \"payer\": \"D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu\",\n \"amount\": \"1000000\"\n }\n },\n \"paymentRequirements\": {\n \"scheme\": \"exact\",\n \"network\": \"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1\",\n \"asset\": \"Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr\",\n \"amount\": \"1000000\",\n \"payTo\": \"8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9\",\n \"maxTimeoutSeconds\": 60,\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"description\": \"Query agent-abc for market analysis\",\n \"extra\": {\n \"feePayer\": \"7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX\",\n \"name\": \"Agent Query Fee\",\n \"agentMint\": \"6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS\",\n \"programId\": \"X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi\",\n \"settlementModes\": [\n \"atomic\",\n \"attestation\",\n \"delegated\"\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://facilitator.x84.ai/verify")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"paymentPayload\": {\n \"x402Version\": 1,\n \"accepted\": {\n \"scheme\": \"exact\",\n \"network\": \"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1\",\n \"asset\": \"Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr\",\n \"amount\": \"1000000\",\n \"payTo\": \"8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9\",\n \"maxTimeoutSeconds\": 60,\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"description\": \"Query agent-abc for market analysis\",\n \"extra\": {\n \"feePayer\": \"7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX\",\n \"name\": \"Agent Query Fee\",\n \"agentMint\": \"6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS\",\n \"programId\": \"X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi\",\n \"settlementModes\": [\n \"atomic\",\n \"attestation\",\n \"delegated\"\n ]\n }\n },\n \"payload\": {\n \"transaction\": \"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjwuBdojnm...\"\n },\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"extensions\": {\n \"mode\": \"atomic\",\n \"receiptPda\": \"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU\",\n \"delegationPda\": \"9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin\",\n \"delegate\": \"D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu\",\n \"signature\": \"<string>\",\n \"timestamp\": 1708700000,\n \"paymentId\": \"a1b2c3d4e5f6\",\n \"txSignature\": \"5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW\",\n \"payer\": \"D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu\",\n \"amount\": \"1000000\"\n }\n },\n \"paymentRequirements\": {\n \"scheme\": \"exact\",\n \"network\": \"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1\",\n \"asset\": \"Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr\",\n \"amount\": \"1000000\",\n \"payTo\": \"8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9\",\n \"maxTimeoutSeconds\": 60,\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"description\": \"Query agent-abc for market analysis\",\n \"extra\": {\n \"feePayer\": \"7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX\",\n \"name\": \"Agent Query Fee\",\n \"agentMint\": \"6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS\",\n \"programId\": \"X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi\",\n \"settlementModes\": [\n \"atomic\",\n \"attestation\",\n \"delegated\"\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"isValid": true,
"payer": "D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu"
}x402
Verify an x402 v2 payment payload
Deserializes and validates a Solana VersionedTransaction against the payment requirements.
Standard x402 flow:
- Deserializes the base64-encoded transaction from
payload.transaction - Validates only allowed program IDs (SPL Token, ComputeBudget, Memo)
- Finds the SPL Token TransferChecked instruction and validates amount, mint, and destination
- Confirms the fee payer matches the facilitator public key
- Rejects already-signed transactions (replay prevention)
x84 extensions (optional):
If extensions.mode is present, additional verification runs:
- atomic: Confirms on-chain tx signature + receipt PDA exists
- attestation: Confirms tx signature + receipt PDA on-chain
- delegated: Validates delegation PDA (client-side) or ed25519 signature with 60s timestamp window (server-side)
v1 backward compatibility: Accepts a base64-encoded JSON string in paymentPayload for legacy clients.
POST
/
verify
Verify an x402 v2 payment payload
curl --request POST \
--url https://facilitator.x84.ai/verify \
--header 'Content-Type: application/json' \
--data '
{
"paymentPayload": {
"x402Version": 1,
"accepted": {
"scheme": "exact",
"network": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
"asset": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
"amount": "1000000",
"payTo": "8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9",
"maxTimeoutSeconds": 60,
"resource": "https://api.x84.ai/a2a/agent-abc/tasks/send",
"description": "Query agent-abc for market analysis",
"extra": {
"feePayer": "7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX",
"name": "Agent Query Fee",
"agentMint": "6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS",
"programId": "X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi",
"settlementModes": [
"atomic",
"attestation",
"delegated"
]
}
},
"payload": {
"transaction": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjwuBdojnm..."
},
"resource": "https://api.x84.ai/a2a/agent-abc/tasks/send",
"extensions": {
"mode": "atomic",
"receiptPda": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
"delegationPda": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"delegate": "D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu",
"signature": "<string>",
"timestamp": 1708700000,
"paymentId": "a1b2c3d4e5f6",
"txSignature": "5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW",
"payer": "D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu",
"amount": "1000000"
}
},
"paymentRequirements": {
"scheme": "exact",
"network": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
"asset": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
"amount": "1000000",
"payTo": "8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9",
"maxTimeoutSeconds": 60,
"resource": "https://api.x84.ai/a2a/agent-abc/tasks/send",
"description": "Query agent-abc for market analysis",
"extra": {
"feePayer": "7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX",
"name": "Agent Query Fee",
"agentMint": "6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS",
"programId": "X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi",
"settlementModes": [
"atomic",
"attestation",
"delegated"
]
}
}
}
'import requests
url = "https://facilitator.x84.ai/verify"
payload = {
"paymentPayload": {
"x402Version": 1,
"accepted": {
"scheme": "exact",
"network": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
"asset": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
"amount": "1000000",
"payTo": "8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9",
"maxTimeoutSeconds": 60,
"resource": "https://api.x84.ai/a2a/agent-abc/tasks/send",
"description": "Query agent-abc for market analysis",
"extra": {
"feePayer": "7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX",
"name": "Agent Query Fee",
"agentMint": "6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS",
"programId": "X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi",
"settlementModes": ["atomic", "attestation", "delegated"]
}
},
"payload": { "transaction": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjwuBdojnm..." },
"resource": "https://api.x84.ai/a2a/agent-abc/tasks/send",
"extensions": {
"mode": "atomic",
"receiptPda": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
"delegationPda": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"delegate": "D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu",
"signature": "<string>",
"timestamp": 1708700000,
"paymentId": "a1b2c3d4e5f6",
"txSignature": "5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW",
"payer": "D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu",
"amount": "1000000"
}
},
"paymentRequirements": {
"scheme": "exact",
"network": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
"asset": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
"amount": "1000000",
"payTo": "8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9",
"maxTimeoutSeconds": 60,
"resource": "https://api.x84.ai/a2a/agent-abc/tasks/send",
"description": "Query agent-abc for market analysis",
"extra": {
"feePayer": "7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX",
"name": "Agent Query Fee",
"agentMint": "6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS",
"programId": "X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi",
"settlementModes": ["atomic", "attestation", "delegated"]
}
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
paymentPayload: {
x402Version: 1,
accepted: {
scheme: 'exact',
network: 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
asset: 'Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr',
amount: '1000000',
payTo: '8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9',
maxTimeoutSeconds: 60,
resource: 'https://api.x84.ai/a2a/agent-abc/tasks/send',
description: 'Query agent-abc for market analysis',
extra: {
feePayer: '7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX',
name: 'Agent Query Fee',
agentMint: '6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS',
programId: 'X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi',
settlementModes: ['atomic', 'attestation', 'delegated']
}
},
payload: {
transaction: 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjwuBdojnm...'
},
resource: 'https://api.x84.ai/a2a/agent-abc/tasks/send',
extensions: {
mode: 'atomic',
receiptPda: '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU',
delegationPda: '9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin',
delegate: 'D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu',
signature: '<string>',
timestamp: 1708700000,
paymentId: 'a1b2c3d4e5f6',
txSignature: '5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW',
payer: 'D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu',
amount: '1000000'
}
},
paymentRequirements: {
scheme: 'exact',
network: 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
asset: 'Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr',
amount: '1000000',
payTo: '8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9',
maxTimeoutSeconds: 60,
resource: 'https://api.x84.ai/a2a/agent-abc/tasks/send',
description: 'Query agent-abc for market analysis',
extra: {
feePayer: '7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX',
name: 'Agent Query Fee',
agentMint: '6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS',
programId: 'X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi',
settlementModes: ['atomic', 'attestation', 'delegated']
}
}
})
};
fetch('https://facilitator.x84.ai/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://facilitator.x84.ai/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'paymentPayload' => [
'x402Version' => 1,
'accepted' => [
'scheme' => 'exact',
'network' => 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
'asset' => 'Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr',
'amount' => '1000000',
'payTo' => '8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9',
'maxTimeoutSeconds' => 60,
'resource' => 'https://api.x84.ai/a2a/agent-abc/tasks/send',
'description' => 'Query agent-abc for market analysis',
'extra' => [
'feePayer' => '7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX',
'name' => 'Agent Query Fee',
'agentMint' => '6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS',
'programId' => 'X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi',
'settlementModes' => [
'atomic',
'attestation',
'delegated'
]
]
],
'payload' => [
'transaction' => 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjwuBdojnm...'
],
'resource' => 'https://api.x84.ai/a2a/agent-abc/tasks/send',
'extensions' => [
'mode' => 'atomic',
'receiptPda' => '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU',
'delegationPda' => '9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin',
'delegate' => 'D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu',
'signature' => '<string>',
'timestamp' => 1708700000,
'paymentId' => 'a1b2c3d4e5f6',
'txSignature' => '5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW',
'payer' => 'D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu',
'amount' => '1000000'
]
],
'paymentRequirements' => [
'scheme' => 'exact',
'network' => 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
'asset' => 'Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr',
'amount' => '1000000',
'payTo' => '8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9',
'maxTimeoutSeconds' => 60,
'resource' => 'https://api.x84.ai/a2a/agent-abc/tasks/send',
'description' => 'Query agent-abc for market analysis',
'extra' => [
'feePayer' => '7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX',
'name' => 'Agent Query Fee',
'agentMint' => '6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS',
'programId' => 'X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi',
'settlementModes' => [
'atomic',
'attestation',
'delegated'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://facilitator.x84.ai/verify"
payload := strings.NewReader("{\n \"paymentPayload\": {\n \"x402Version\": 1,\n \"accepted\": {\n \"scheme\": \"exact\",\n \"network\": \"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1\",\n \"asset\": \"Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr\",\n \"amount\": \"1000000\",\n \"payTo\": \"8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9\",\n \"maxTimeoutSeconds\": 60,\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"description\": \"Query agent-abc for market analysis\",\n \"extra\": {\n \"feePayer\": \"7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX\",\n \"name\": \"Agent Query Fee\",\n \"agentMint\": \"6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS\",\n \"programId\": \"X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi\",\n \"settlementModes\": [\n \"atomic\",\n \"attestation\",\n \"delegated\"\n ]\n }\n },\n \"payload\": {\n \"transaction\": \"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjwuBdojnm...\"\n },\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"extensions\": {\n \"mode\": \"atomic\",\n \"receiptPda\": \"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU\",\n \"delegationPda\": \"9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin\",\n \"delegate\": \"D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu\",\n \"signature\": \"<string>\",\n \"timestamp\": 1708700000,\n \"paymentId\": \"a1b2c3d4e5f6\",\n \"txSignature\": \"5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW\",\n \"payer\": \"D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu\",\n \"amount\": \"1000000\"\n }\n },\n \"paymentRequirements\": {\n \"scheme\": \"exact\",\n \"network\": \"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1\",\n \"asset\": \"Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr\",\n \"amount\": \"1000000\",\n \"payTo\": \"8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9\",\n \"maxTimeoutSeconds\": 60,\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"description\": \"Query agent-abc for market analysis\",\n \"extra\": {\n \"feePayer\": \"7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX\",\n \"name\": \"Agent Query Fee\",\n \"agentMint\": \"6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS\",\n \"programId\": \"X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi\",\n \"settlementModes\": [\n \"atomic\",\n \"attestation\",\n \"delegated\"\n ]\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://facilitator.x84.ai/verify")
.header("Content-Type", "application/json")
.body("{\n \"paymentPayload\": {\n \"x402Version\": 1,\n \"accepted\": {\n \"scheme\": \"exact\",\n \"network\": \"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1\",\n \"asset\": \"Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr\",\n \"amount\": \"1000000\",\n \"payTo\": \"8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9\",\n \"maxTimeoutSeconds\": 60,\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"description\": \"Query agent-abc for market analysis\",\n \"extra\": {\n \"feePayer\": \"7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX\",\n \"name\": \"Agent Query Fee\",\n \"agentMint\": \"6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS\",\n \"programId\": \"X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi\",\n \"settlementModes\": [\n \"atomic\",\n \"attestation\",\n \"delegated\"\n ]\n }\n },\n \"payload\": {\n \"transaction\": \"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjwuBdojnm...\"\n },\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"extensions\": {\n \"mode\": \"atomic\",\n \"receiptPda\": \"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU\",\n \"delegationPda\": \"9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin\",\n \"delegate\": \"D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu\",\n \"signature\": \"<string>\",\n \"timestamp\": 1708700000,\n \"paymentId\": \"a1b2c3d4e5f6\",\n \"txSignature\": \"5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW\",\n \"payer\": \"D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu\",\n \"amount\": \"1000000\"\n }\n },\n \"paymentRequirements\": {\n \"scheme\": \"exact\",\n \"network\": \"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1\",\n \"asset\": \"Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr\",\n \"amount\": \"1000000\",\n \"payTo\": \"8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9\",\n \"maxTimeoutSeconds\": 60,\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"description\": \"Query agent-abc for market analysis\",\n \"extra\": {\n \"feePayer\": \"7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX\",\n \"name\": \"Agent Query Fee\",\n \"agentMint\": \"6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS\",\n \"programId\": \"X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi\",\n \"settlementModes\": [\n \"atomic\",\n \"attestation\",\n \"delegated\"\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://facilitator.x84.ai/verify")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"paymentPayload\": {\n \"x402Version\": 1,\n \"accepted\": {\n \"scheme\": \"exact\",\n \"network\": \"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1\",\n \"asset\": \"Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr\",\n \"amount\": \"1000000\",\n \"payTo\": \"8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9\",\n \"maxTimeoutSeconds\": 60,\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"description\": \"Query agent-abc for market analysis\",\n \"extra\": {\n \"feePayer\": \"7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX\",\n \"name\": \"Agent Query Fee\",\n \"agentMint\": \"6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS\",\n \"programId\": \"X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi\",\n \"settlementModes\": [\n \"atomic\",\n \"attestation\",\n \"delegated\"\n ]\n }\n },\n \"payload\": {\n \"transaction\": \"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjwuBdojnm...\"\n },\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"extensions\": {\n \"mode\": \"atomic\",\n \"receiptPda\": \"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU\",\n \"delegationPda\": \"9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin\",\n \"delegate\": \"D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu\",\n \"signature\": \"<string>\",\n \"timestamp\": 1708700000,\n \"paymentId\": \"a1b2c3d4e5f6\",\n \"txSignature\": \"5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW\",\n \"payer\": \"D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu\",\n \"amount\": \"1000000\"\n }\n },\n \"paymentRequirements\": {\n \"scheme\": \"exact\",\n \"network\": \"solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1\",\n \"asset\": \"Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr\",\n \"amount\": \"1000000\",\n \"payTo\": \"8VF2ZAp9C1RKeV2XmKBnCQdbhGuNZaLZ1x7mTCSGsMH9\",\n \"maxTimeoutSeconds\": 60,\n \"resource\": \"https://api.x84.ai/a2a/agent-abc/tasks/send\",\n \"description\": \"Query agent-abc for market analysis\",\n \"extra\": {\n \"feePayer\": \"7iRiHRnj1NofyEZVuj86Z4s5MJwVFZVR71XuAsLnwLYX\",\n \"name\": \"Agent Query Fee\",\n \"agentMint\": \"6s1irFAQHoiK7VLwrUQEGpN5E1MrLoo5dZVWZCAwsDZS\",\n \"programId\": \"X84XHMKT7xvjgVUXFNQLZLSdCEEZu2wAPrAeP4M9Hhi\",\n \"settlementModes\": [\n \"atomic\",\n \"attestation\",\n \"delegated\"\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"isValid": true,
"payer": "D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu"
}Body
application/json
Response
Verification result — check isValid to determine success
Whether the payment payload passed verification
Example:
true
Machine-readable reason code for invalid payments
Example:
"AMOUNT_MISMATCH"
Human-readable explanation of why verification failed
Example:
"Expected amount 1000000, got 500000"
Wallet address of the payer (extracted from transaction)
Example:
"D6j5dis544qzYmSNixwYwBXqcDqgWiFHpi6hebPEQNVu"
Additional extension data (e.g. x84 settlement mode)
Example:
{ "mode": "atomic" }
⌘I