> ## Documentation Index
> Fetch the complete documentation index at: https://aquaprotocol.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Get started with verification and notarization in minutes

## Implement Verification

Get up and running with Aqua Protocol's verification system in three simple steps. This guide will walk you through setting up your environment, creating your first verification, and integrating with our API.

> [!NOTE]
>
> This quickstart assumes you have basic knowledge of blockchain concepts and JavaScript/TypeScript. If you're new to verification systems, check out our [Core Concepts](https://aquaprotocol.mintlify.site/essentials/settings) guide first.

### Step 1: Set Up Your Environment

> [accordion] Install the SDK
>
> Install the Aqua Protocol SDK for verification and notarization:
>
> ```bash npm theme={null}
> npm install @aqua-protocol/verifier
> ```
>
> ```bash yarn theme={null}
> yarn add @aqua-protocol/verifier
> ```
>
> ```bash pnpm theme={null}
> pnpm add @aqua-protocol/verifier
> ```
>
> > [!TIP]
> >
> > The SDK includes TypeScript definitions and comprehensive verification tools.

> [accordion] Get your API credentials
>
> 1. Sign up for a free account at [app.aqua-protocol.org](https://app.aqua-protocol.org)
>
> 2. Navigate to the API Keys section in your dashboard
>
> 3. Generate a new API key for verification services
>
> 4. Copy your API key and verification endpoint
>
> > [!WARNING]
> >
> > Keep your API key secure and never commit it to version control. Use environment variables in production.

### Step 2: Create Your First Verification

> [accordion] Define verification schema
>
> Create a verification schema for document notarization:
>
> ```json schema.json theme={null}
> {
>   "type": "object",
>   "properties": {
>     "documentId": {
>       "type": "string",
>       "description": "Unique document identifier"
>     },
>     "hash": {
>       "type": "string",
>       "description": "SHA-256 hash of document content"
>     },
>     "timestamp": {
>       "type": "string",
>       "format": "date-time"
>     },
>     "signer": {
>       "type": "string",
>       "description": "Public key of document signer"
>     }
>   },
>   "required": ["documentId", "hash", "timestamp", "signer"]
> }
> ```
>
> > [!TIP]
> >
> > This schema defines the structure for document verification and notarization.

> [accordion] Implement verification
>
> Create and verify a document using the Aqua Protocol SDK:
>
> ```javascript verify.js theme={null}
> import { AquaVerifier } from '@aqua-protocol/verifier';
> import crypto from 'crypto';
>
> const verifier = new AquaVerifier({
>   apiKey: process.env.AQUA_API_KEY,
>   endpoint: 'https://api.aqua-protocol.org/v3'
> });
>
> // Create document hash
> const documentContent = 'Important document content';
> const documentHash = crypto.createHash('sha256')
>   .update(documentContent)
>   .digest('hex');
>
> // Create verification
> const verification = await verifier.createVerification({
>   documentId: 'doc-123',
>   hash: documentHash,
>   timestamp: new Date().toISOString(),
>   signer: '0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6'
> });
>
> console.log('Verification created:', verification.id);
> console.log('Transaction hash:', verification.txHash);
> ```
>
> > [!TIP]
> >
> > Your document is now verified and notarized on the blockchain!

### Step 3: Query Verification Status

> [accordion] Check verification status
>
> Query your verification to confirm its status and details:
>
> ```javascript query.js theme={null}
> // Get verification details
> const verification = await verifier.getVerification(verification.id);
>
> console.log('Verification Status:', verification.status);
> console.log('Document ID:', verification.documentId);
> console.log('Created At:', verification.createdAt);
> console.log('Block Number:', verification.blockNumber);
> ```

> [accordion] Verify document integrity
>
> Verify that a document matches its notarized hash:
>
> ```javascript validate.js theme={null}
> // Verify document against notarized hash
> const isValid = await verifier.validateDocument({
>   documentId: 'doc-123',
>   content: documentContent,
>   expectedHash: verification.hash
> });
>
> if (isValid) {
>   console.log('Document integrity verified');
> } else {
>   console.log('Document has been modified');
> }
> ```
>
> > [!WARNING]
> >
> > Always verify document integrity before trusting verification results in production applications.

## Next Steps

Congratulations! You've successfully implemented verification and notarization with Aqua Protocol. Here's what you can explore next:

> [card] [Schema Reference](https://aquaprotocol.mintlify.site/essentials/settings)
>
> Explore comprehensive schema definitions for advanced verification patterns.

> [card] [Verifier Tests](https://aquaprotocol.mintlify.site/essentials/navigation)
>
> Learn about automated testing and validation frameworks.

> [card] [Security & Identity](https://aquaprotocol.mintlify.site/essentials/code)
>
> Implement advanced identity management and security features.

> [card] [Use Cases](https://aquaprotocol.mintlify.site/essentials/images)
>
> Discover real-world applications and implementation patterns.

## What's Next?

**1. Explore Advanced Features**

Check out our [Schema Reference](https://aquaprotocol.mintlify.site/api-reference/introduction.md) for detailed verification schemas and API specifications.

**2. Join the Community**

Connect with other developers in our [Discord community](https://discord.gg/aqua-protocol) for support and collaboration.

**3. Build Secure Applications**

Use Aqua Protocol to build secure, verifiable applications. We can't wait to see what you create!

> [!TIP]
>
> **Ready for production?** Upgrade to our Pro plan for higher rate limits, priority support, and advanced verification features. [Learn more](https://app.aqua-protocol.org/pricing).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.