AttestMe is an attestation service built on StarkNet, offering a variety of attestation functionalities including CreateSchema, MakeAttestation, RevokeAttestation, and advanced resolvers for enhanced flexibility.
- CreateSchema and ViewSchemas: Define schemas for structured attestations.
- MakeAttestation and ViewAttestations: Create attestations based on predefined schemas.
- RevokeAttestation: Revoke existing attestations when no longer valid.
- Resolvers: Custom resolvers such as DataResolver, ExpirationResolver, PayingResolver, and TokenResolver.
- Node.js (v18.17.x or later)
- npm or yarn installed globally
- Starknet Wallet (e.g. Braavos, Argent X) for interacting with the application
Follow these steps to set up the project locally:
-
Clone the Repository
git clone https://github.com/rajeebkm/attest-me cd attest-me
-
Navigate to the Front-End Folder
Move into the
front-end
directory where the client application resides.cd front-end
-
Install Dependencies
Install all required dependencies using the following command. The
--f
flag ensures compatibility by forcing a clean install.npm i --f
-
Run the Development Server
Start the development server. This will host the front-end on a local server, typically accessible at
http://localhost:3000
.npm run dev
-
Access the Application
Open a browser and navigate to
http://localhost:3000
. Connect your StarkNet wallet to begin using the attestation features.
schema_registry.cairo
: Manages the creation, registration, and management of schemas, enabling structured and reusable attestations.sas.cairo
: Provides logic for attesting, verifying, and revoking attestations based on schemas.
Resolvers are modular components that add specific conditions or features to attestations. Each resolver is implemented as a separate contract to provide extensibility and reuse:
recipient_resolver.cairo
: Ensures that an attestation is made to a specific recipient, like addressing a letter to the intended individual.attester_resolver.cairo
: Verifies that the attestation is created by a specific attester, granting exclusive rights to a trusted entity.revocation_resolver.cairo
: Manages and controls the revocation process for attestations efficiently.schema_resolver.cairo
: Validates attestations against predefined schemas to ensure structural consistency.token_resolver.cairo
: Checks the approval of a specific amount of tokens for attestation, integrating token transactions into the process.value_resolver.cairo
: Ensures that a specific amount of ETH accompanies an attestation, acting as a required fee or deposit.expiration_resolver.cairo
: Validates that the attestation has not exceeded its expiration time, enforcing time-based validity.
- Framework: Built with Next.js.
- Libraries:
- Starknet.js: For wallet integration and blockchain interactions.
- React: For building reusable UI components.
To test the contracts, navigate to the project's home directory and run:
snforge test
---
Feel free to reach out at https://x.com/stark_attestme with any questions or issues!