Core APIUserAddress

/user/{address}/compliance-v2

Predicate V2 compliance check for the ComplianceProxy stack. Returns a one-time attestation (spent on-chain on success, short-lived) ABI-encoded as `complianceData`. Use purpose=preview to prefetch without receiving a proof; request purpose=transaction immediately before sending to take an unused proof once or fetch a new one. Runs in parallel with the V1 `/compliance` route.

GET
/user/{address}/compliance-v2

Predicate V2 compliance check for the ComplianceProxy stack. Returns a one-time attestation (spent on-chain on success, short-lived) ABI-encoded as complianceData. Use purpose=preview to prefetch without receiving a proof; request purpose=transaction immediately before sending to take an unused proof once or fetch a new one. Runs in parallel with the V1 /compliance route.

Path Parameters

address*string

Executing sender: the EVM account that will call ComplianceProxy (msg.sender). For relayed / bridged flows this is the relayer, and the end user goes in onBehalf.

Match^0x[a-fA-F0-9]+$

Query Parameters

purpose?string

V2 only: preview caches an unused attestation for up to 30 seconds and returns eligibility/routing without a proof. Transaction takes a proof once or fetches a new one. Defaults to transaction; V1 behavior is unchanged.

Default"transaction"

Value in

  • "preview"
  • "transaction"
vault*string

Vault slug selecting its configured Predicate V2 deployment. Required to select an eligible vault.

Length1 <= length
chainId*integer

EVM chain ID of the ComplianceProxy deployment. Requires an enabled V2 deployment for the selected vault.

Range0 < value
flow?string

ComplianceProxy operation to attest. deposit covers asset deposits; requestRedeem and instantRedeem cover redemptions. accessCheck covers NestAdapter leverage: sender is the Bundler3 initiator, with an optional represented user. Defaults to deposit.

Default"deposit"

Value in

  • "deposit"
  • "requestRedeem"
  • "instantRedeem"
  • "accessCheck"
onBehalf?string

Optional for deposits and access checks. Represented user when address executes on behalf of someone else. Accepts an EVM address, 32-byte hex identifier, or base58 Solana public key. Deposits always select deposit(bytes32). Access checks select accessCheck(bytes32) only for a nonzero user distinct from sender; otherwise accessCheck(address sender).

composerAddress?string

Optional registered composer that is both the executing sender and the historical Predicate V2 deployment selector. Requires a deposit on behalf of a represented user.

Match^0x[a-fA-F0-9]+$

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/user/0x1234567890123456789012345678901234567890/compliance-v2?vault=nest-test-vault&chainId=98866"
{  "data": {    "isCompliant": true,    "chainId": 0,    "chain": "plume",    "complianceProxyAddress": "string",    "hookAddress": "string",    "sender": "string",    "onBehalf": "string",    "payload": "0xd0e30db0",    "attestation": {      "uuid": "string",      "expiration": 0,      "attester": "string",      "signature": "string"    },    "complianceData": "string",    "policyId": "string",    "policyName": "string",    "reason": {      "code": "string",      "message": "string"    }  }}