Skip to main content

What’s new

  • Multi-chain support — deploy to multiple chains and manage them from a single project
  • Offchain policy management — update policies through the dashboard without onchain transactions; changes are enforced immediately
  • BasicPredicateClient — a simpler integration path for who-based policies (AML/KYC, allowlist/denylist, geo-restrictions) that removes the need for calldata encoding

Changes

In V1, policyID on your contract selected which policy was enforced. Changing policies required an onchain setPolicy() transaction.In V2, the onchain policyID is set to a verification_hash value once during dashboard onboarding. Policy selection and updates are managed entirely through the dashboard and enforced immediately. The onchain policyID remains unchanged.

Migration checklist

1

Deploy new contracts

If you must upgrade your contracts instead, reach out to the Predicate team to coordinate
Implement BasicPredicateClient or PredicateClient with the Predicate Registry address and deploy.
2

Onboard to dashboard

Create a new project on app.predicate.io, find the verification_hash value and set it as the PolicyID on your contract to prove ownership. Configure your policy through the dashboard.
3

Update offchain service

Point API calls to /v2/attestation with chain (string) instead of chain_id. If using the SDK, import from @predicate/core/v2 and replace evaluatePolicy() with requestAttestation().
4

Update frontend

Pass the Attestation struct (uuid, expiration, attester, signature) to your predicated function.