How it works
Civic Pass issues an on-chain token to a wallet based on a set of rules defined by the dApp.
This token can be verified at any moment, ie. at the time of making a transaction, minting a NFT, etc.
System Overview

The Gatekeeper Network

A gatekeeper network defines a framework, or a set of rules, by which a prospective user is vetted and tokens are issued.
A dApp selects the Gatekeeper Network that provides the rules they require for access to their platform and new Gatekeeper Networks are created to accommodate various requirements. For example, one network will require identity verification, while another might require excluding users from specific countries.

The Civic Gatekeeper

Civic hosts an access control service which ensure users wishing to use a dApp adheres to the dApp's rules from the Gatekeeper Network. It performs checks such as Identity Verification, liveness, and OFAC allowed country verification.
Once the Civic Gatekeeper confirms that a user meets the dApp's requirements, it issues a Civic Pass on-chain (gateway token) to that user’s wallet address.

The On-Chain Civic Pass

The Civic Pass (also referred to as "gateway token") is an on-chain structure representing a wallet's completion of the Gatekeeper Network's requirements.
A dApp which trusts the particular gatekeeper network can then look for the presence of this on-chain token to grant the user access to their platform.
The Civic Pass records the user's wallet address, which gatekeeper network issued the pass, whether it's active, and when it expires, among other fields. The presence of an active token proves that the gatekeeper verified the user according to the dApp's criteria.
This token is tied to the user's wallet and is non-transferable.
Using's Rust integration library, the dApp's smart contracts can verify the state of the Civic Pass before allowing transactions through, thereby blocking non-compliant users from using the dApp.

The dApp UI integration

Once the dApp's Solana transactions are guarded by Civic Pass, the dApp UI should be updated to
a) guide the user through obtaining a Civic Pass and keeping it active, and
b) reflect the state of the Civic Pass at any point, and maybe disable parts of the UI when an active pass is not found.
To this end, Civic provides a React component for talking to the Civic Gatekeeper and the on-chain gateway program.
Last modified 10d ago