Examples
Binance Example
Under Development: This API is currently in development. Documentation and endpoints may change.
End-to-End Web Proof Workflow
This example demonstrates the complete workflow of generating and verifying a Web Proof using the Web Prover Server.
Step 1: Generate a Web Proof
First, generate a Web Proof for an API call:
curl -X POST https://web-prover.vlayer.xyz/api/v1/prove \
-H "Content-Type: application/json" \
-H "x-client-id: 4f028e97-b7c7-4a81-ade2-6b1a2917380c" \
-H "Authorization: Bearer jUWXi1pVUoTHgc7MOgh5X0zMR12MHtAhtjVgMc2DM3B3Uc8WEGQAEix83VwZ" \
-d '{
"url": "https://data-api.binance.vision/api/v3/exchangeInfo?symbol=ETHUSDC",
"headers": []
}'
const response = await fetch('https://web-prover.vlayer.xyz/api/v1/prove', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-client-id': '4f028e97-b7c7-4a81-ade2-6b1a2917380c',
'Authorization': 'Bearer jUWXi1pVUoTHgc7MOgh5X0zMR12MHtAhtjVgMc2DM3B3Uc8WEGQAEix83VwZ'
},
body: JSON.stringify({
url: 'https://data-api.binance.vision/api/v3/exchangeInfo?symbol=ETHUSDC',
headers: []
})
});
const presentation = await response.json();
console.log(JSON.stringify({
...presentation,
data: presentation.data.substring(0, 100) + '...'
}, null, 2));
The included credentials are for limited public use. For production use, please contact our team.
Response:
{
"data": "014000000000000000899cdccd31337c96bb9e519aa438ed73cdb47dda5c80e995ef0a1c04bf6c563730cde41724dafc1391b1b81acc5d989a7f7add8...",
"version": "0.1.0-alpha.12",
"meta": {
"notaryUrl": "https://test-notary.vlayer.xyz/v0.1.0-alpha.12"
}
}
Step 2: Verify the Web Proof
Now verify the generated Web Proof by sending the json from the /prove
response:
curl -X POST https://web-prover.vlayer.xyz/api/v1/verify \
-H "Content-Type: application/json" \
-H "x-client-id: 4f028e97-b7c7-4a81-ade2-6b1a2917380c" \
-H "Authorization: Bearer jUWXi1pVUoTHgc7MOgh5X0zMR12MHtAhtjVgMc2DM3B3Uc8WEGQAEix83VwZ" \
-d '{
"data": "014000000000000000899cdccd31337c96bb9e519aa438ed73cdb47dda5c80e995ef0a1c04bf6c563730cde41724dafc1391b1b81acc5d989a7f7add8...",
"version": "0.1.0-alpha.12",
"meta": {
"notaryUrl": "https://test-notary.vlayer.xyz/v0.1.0-alpha.12"
}
}'
const response = await fetch('https://web-prover.vlayer.xyz/api/v1/verify', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-client-id': '4f028e97-b7c7-4a81-ade2-6b1a2917380c',
'Authorization': 'Bearer jUWXi1pVUoTHgc7MOgh5X0zMR12MHtAhtjVgMc2DM3B3Uc8WEGQAEix83VwZ'
},
body: JSON.stringify(presentation)
});
const data = await response.json();
console.log(JSON.stringify(data, null, 2));
Response:
{
"success": true,
"serverDomain": "data-api.binance.vision",
"notaryKeyFingerprint": "a7e62d7f17aa7a22c26bdb93b7ce9400e826ffb2c6f54e54d2ded015677499af",
"request": {
"method": "GET",
"url": "/api/v3/exchangeInfo?symbol=ETHUSDC",
"version": "HTTP/1.1",
"headers": [
["connection", "close"],
["host", "data-api.binance.vision"]
],
"body": null,
"raw": "474554202f6170692f76332f65786368616e6765496..."
},
"response": {
"status": 200,
"version": "HTTP/1.1",
"headers": [
["date", "Thu, 02 Oct 2025 04:27:38 GMT"],
["content-type", "application/json;charset=UTF-8"],
["content-length", "5471"],
["x-mbx-uuid", "aac63137-8fe9-4780-8571-560d75624e0f"]
],
"body": "{\"timezone\":\"UTC\",\"serverTime\":1759379258989,\"symbols\":[{\"symbol\":\"ETHUSDC\",\"status\":\"TRADING\",\"baseAsset\":\"ETH\",\"baseAssetPrecision\":8,\"quoteAsset\":\"USDC\",\"quotePrecision\":8,\"orderTypes\":[\"LIMIT\",\"LIMIT_MAKER\",\"MARKET\"],\"icebergAllowed\":true,\"isSpotTradingAllowed\":true,\"isMarginTradingAllowed\":true,\"filters\":[{\"filterType\":\"PRICE_FILTER\",\"minPrice\":\"0.01000000\",\"maxPrice\":\"1000000.00000000\"}],\"defaultSelfTradePreventionMode\":\"EXPIRE_MAKER\"}]}",
"raw": "485454502f312e3120323030204f4b0d0a446174653..."
}
}