Skip to main content
POST
/
v2
/
attestation
curl --request POST \
--url https://api.predicate.io/v2/attestation \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '{
"to": "0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6",
"from": "0x8ba1f109551bD432803012645Hac136c",
"data": "0xa9059cbb...",
"msg_value": "0x0",
"chain": "sepolia"
}'
{
  "policy_id": "<string>",
  "is_compliant": true,
  "attestation": {
    "uuid": "<string>",
    "expiration": 123,
    "attester": "<string>",
    "signature": "<string>"
  }
}
Submit transaction details to receive a chain-appropriate attestation.
  • EVM
  • SVM

Request

cURL
curl -X POST "https://api.predicate.io/v2/attestation" \
  -H "Content-Type: application/json" \
  -H "x-api-key: $PREDICATE_API_KEY" \
  -d '{
    "to":   "0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6",
    "from": "0x8ba1f109551bD432803012645Hac136c",
    "data": "0xa9059cbb000000000000000000000000742d35cc6634c0532925a3b8d4c9db96c4b4d8b6",
    "msg_value": "0x0",
    "user_ip": "203.0.113.2",
    "chain": "sepolia"
  }'

Response

{
  "policy_id": "policy_abc123def456",
  "is_compliant": true,
  "attestation": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "expiration": 1696640400,
    "attester": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
    "signature": "0x1b2c3d4e..."
  }
}

Authorizations

x-api-key
string
header
required

Body

application/json

Transaction details to evaluate for policy compliance and to issue a chain-appropriate attestation.

to
string
required

Destination contract or program address. This address is used to lookup the policy and the attestation is cryptographically bound to it, making the attestation valid only for this specific contract/program.

from
string
required

End user's wallet address initiating the transaction. This field is used for policy enforcement and compliance checks.

data
string
required

Encoded transaction payload. Can be left as 0x for empty data.

msg_value
string
required

Native token amount (wei for EVM, lamports for Solana). Typically 0 for most transactions.

chain
string
required

Target blockchain name. Examples: ethereum, sepolia, base, solana.

user_ip
string

End-user IP address for geolocation-based policy evaluation. Optional.

Response

200 - application/json

Successfully evaluated and returned attestation

Evaluation result and attestation payload to embed onchain.

policy_id
string

Identifier of the evaluated policy.

is_compliant
boolean

True if the request satisfied the configured policy.

attestation
object

Chain‑appropriate attestation fields for onchain verification.