Skip to main content

Requesting Verification

Registration puts a resource on-chain. Verification elevates it from “registered” to “attested by validators”, giving consumers a protocol-level signal that the resource is legitimate at a specified trust level. This guide walks through the three verification levels, their fees, and the end-to-end request flow.

The three levels

Fees scale with level: governance sets the exact amounts via the FeeManager; see Fee Model for current values. All fees are denominated in NOTA.

When to request which

  • BASIC is appropriate for most self-custody wallets and public contracts where the operator wants a cheap, fast trust signal.
  • ENHANCED raises the evidence bar. Expect validators to perform additional checks: on-chain behavioral analysis, proof of ownership, recent activity thresholds.
  • INSTITUTIONAL is for regulated entities. Validators at this level typically require off-chain KYC documents delivered through a side channel and hold operators to periodic re-verification.

The flow

Prerequisites

  • The resource must already be registered on-chain (see Registering a Resource).
  • Your account must hold enough NOTA to pay the level’s fee, plus enough native gas for the transaction.
  • The VerificationEngine must be approved as a NOTA spender for at least the fee amount.

Step 1: Check the fee

Step 2: Approve NOTA

Step 3: Request verification

The VerificationRequested event is emitted and a numeric requestId is assigned. Validators pick up the event, evaluate the resource against the level’s policy, and submit submitAttestation(resourceId, approved) transactions.

Step 4: Track progress

VerificationStatus values are PENDING (0), APPROVED (1), REJECTED (2), EXPIRED (3). On approval, the registry’s verification_level for the resource ID is updated atomically.

Step 5: Confirm elevation on the registry

This is what third-party wallets and explorers read. Once it changes, every consumer sees the same elevated level without needing any side channel.

If the request is rejected

If the rejection count reaches quorum first, the level does not change and the fee is partially refunded per the FeeManager policy. Common causes: tampered .nota file, insufficient evidence at the requested level, conflict with existing registrations. See Dispute Resolution to challenge an outcome.

Next steps