# Core Components

**OP Passport Frontend:** Web interface for users to interact with the platform.

**Database:** Storage for user data, badge issuance records, and attestations.

**Back-End Service:**

* Curia Indexer: Indexed data from on-chain and off-chain. This indexed data will be stored in the database for the criteria for each badge issuance record.
* Issuer: The backend service that is responsible for issuing badges to users. It also acts as a relayer for anonymous attestation.

**Smart Contracts:** Blockchain-based contracts for badge minting, identity attributes, and ZK proofs.

* Resolver: for validate on-chain criteria on endorsement attestation and verify proof & signature on anonymous attestation.
* Smart Account: smart contract account as passport and act as identity layer for each user.
