Verify Content API

Verify the authenticity of registered content

Endpoint

POST https://api.blockfact.io/v1/content/verify

Request Body

{
  "tx_hash": "0x1234...abcd"
}

Parameters

FieldTypeRequiredDescription
tx_hashstringYesStarknet transaction hash

Response

{
  "valid": true,
  "content_hash": "0x5678...ef01",
  "creator": "0xabc...def",
  "timestamp": "2026-03-08T12:00:00Z",
  "block_number": 123456,
  "network": "starknet-mainnet",
  "metadata": {
    "latitude": 40.7128,
    "longitude": -74.0060,
    "device": "iPhone 15 Pro"
  }
}

Response Fields

FieldTypeDescription
validbooleanWhether content is authentic
content_hashstringHash of original content
creatorstringWallet address of creator
timestampstringWhen content was registered
block_numbernumberBlockchain block number
networkstringBlockchain network
metadataobjectAdditional metadata

Error Responses

404 Not Found

{
  "error": "Transaction not found",
  "message": "No content registered with this transaction hash"
}

400 Bad Request

{
  "error": "Invalid transaction hash",
  "message": "Transaction hash must be a valid hex string"
}

Example: cURL

curl -X POST https://api.blockfact.io/v1/content/verify \
  -H "Content-Type: application/json" \
  -d '{
    "tx_hash": "0x1234...abcd"
  }'

Example: JavaScript

const response = await fetch('https://api.blockfact.io/v1/content/verify', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    tx_hash: '0x1234...abcd'
  })
});

const result = await response.json();

if (result.valid) {
  console.log('Content is authentic!');
  console.log('Creator:', result.creator);
  console.log('Registered:', result.timestamp);
} else {
  console.log('Content verification failed');
}

Example: Python

import requests

response = requests.post(
    'https://api.blockfact.io/v1/content/verify',
    json={'tx_hash': '0x1234...abcd'}
)

result = response.json()

if result['valid']:
    print('Content is authentic!')
    print(f"Creator: {result['creator']}")
    print(f"Registered: {result['timestamp']}")
else:
    print('Content verification failed')

SDK Usage

React Native

import { verifyContent } from '@blockfact/react-native-facti-pro';

const result = await verifyContent(factiUrl);

console.log('Valid:', result.valid);
console.log('Metadata:', result.metadata);

React Web

import { parseFacTi } from '@blockfact/react-facti';

const { metadata } = await parseFacTi(factiUrl);

// Verify on blockchain
const response = await fetch('https://api.blockfact.io/v1/content/verify', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ tx_hash: metadata.tx_hash })
});

const verification = await response.json();

Rate Limits

  • Free Tier: 1,000 verifications/day
  • Pro Tier: 10,000 verifications/day
  • Enterprise: Unlimited

💡 Best Practice

Verification is free and doesn't require authentication. Cache results to avoid unnecessary API calls.