ProofRails

Flare contracts

Always confirm chain ID 14, runtime bytecode and the exact address before signing or sending value.

Addresses

Contract Address
EvidenceAnchor 0x235f83a74fc9D759D648eC533d2c06712F3Ca5EA
X402Facilitator 0xa78F15ee5a1Ff1D89F6AD782a5f9b81f7C2aA4aE
USD₮0 0xe7cd86e13AC4309349F30B3435a9d337750fC82D

RPC: https://flare-api.flare.network/ext/C/rpc

Explorer: https://flare-explorer.flare.network

EvidenceAnchor

function anchorEvidence(bytes32 bundleHash) external;
event EvidenceAnchored(bytes32 bundleHash, address indexed sender, uint256 ts);

The contract stores evidence through events. A verifier reads the transaction receipt and compares bundleHash with the ZIP SHA-256.

X402Facilitator

The facilitator accepts a PaymentPayload containing token, payer, recipient, raw amount, authorization window, nonce and signature values.

Main settlement functions:

function settlePayment(PaymentPayload calldata payload) external returns (bytes32 paymentId);
function settlePaymentAsPayee(PaymentPayload calldata payload) external returns (bytes32 paymentId);

Read functions:

function verifyPayment(PaymentPayload calldata payload) external view returns (bytes32 paymentId, bool valid);
function getPayment(bytes32 paymentId) external view returns (PaymentRecord memory);
function isNonceUsed(address token, address authorizer, bytes32 nonce) external view returns (bool);
function supportedTokens(address token) external view returns (bool);
function minimumAmounts(address token) external view returns (uint256);
function paused() external view returns (bool);

Successful settlement emits:

event X402PaymentSettled(
    address indexed token,
    address indexed payer,
    address indexed recipient,
    uint256 amount,
    bytes32 nonce,
    bytes32 paymentId
);

paymentId is keccak256(abi.encode(from, to, token, value, nonce)). The facilitator and token both reject reuse through the payment record and EIP-3009 authorization state.

ProofRails operates an integrated x402 facilitator for its own payment-gated APIs; on Flare, USDT0 settlement uses the ProofRails X402Facilitator contract. These contracts do not imply a generic public /verify and /settle facilitator service.