# Core Technologies

RAIR integrates with these enterprise-level products for a more feature-rich experience:

## Core Cloud

&#x20;Automated deployments, scalable databases, and secure key/value storage.&#x20;

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Google Cloud Platform</td><td>Preferred cloud provider. Kubernetes engine for automated deployment and scaling.</td><td></td><td><a href="/files/F3pNNOhMtCXoeUU17wqD">/files/F3pNNOhMtCXoeUU17wqD</a></td><td><a href="https://cloud.google.com/">https://cloud.google.com/</a></td></tr><tr><td>MongoDB Atlas</td><td>Scalable cloud database platform.</td><td></td><td><a href="/files/cPQjDdudJVk0m8GMHztD">/files/cPQjDdudJVk0m8GMHztD</a></td><td><a href="https://www.mongodb.com/atlas">https://www.mongodb.com/atlas</a></td></tr><tr><td>Hashicorp Vault</td><td>High-security secret management engine. </td><td></td><td><a href="/files/oVAZNWuMNfy8Xg1YKUh8">/files/oVAZNWuMNfy8Xg1YKUh8</a></td><td><a href="https://www.hashicorp.com/products/vault">https://www.hashicorp.com/products/vault</a></td></tr></tbody></table>

***

## Core Web3&#x20;

Sync your app, decentralize your storage, get your users on-boarded with ease.

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><p>Alchemy </p><p></p><p>Quickly sync your app with the blockchain of your choice. </p></td><td></td><td></td><td><a href="/files/9xCZnzvSyqvvKLVANQc3">/files/9xCZnzvSyqvvKLVANQc3</a></td><td><a href="https://www.alchemy.com/">https://www.alchemy.com/</a></td></tr><tr><td><p>Filebase </p><p></p><p>Decentralized Storage with IPFS (Interplanetary File System).</p></td><td></td><td></td><td><a href="/files/UYm3mj4vWw26AByb4KOM">/files/UYm3mj4vWw26AByb4KOM</a></td><td><a href="http://filebase.com">http://filebase.com</a></td></tr><tr><td><p>Web3Auth </p><p></p><p>Preferred provider for WaaS. Fast, cheap, reliable</p></td><td></td><td></td><td><a href="/files/dTc5ES4jAjWswwd0K8gG">/files/dTc5ES4jAjWswwd0K8gG</a></td><td><a href="http://web3auth.io">http://web3auth.io</a></td></tr></tbody></table>

## Full List

## RAIR dApp - Comprehensive Integration Master List

### 1. Blockchain Infrastructure

*Essential blockchain connectivity and interaction technologies*

| ID  | Name                           | Type     | Description                                           | Importance                                                               | Environment Variables                          |
| --- | ------------------------------ | -------- | ----------------------------------------------------- | ------------------------------------------------------------------------ | ---------------------------------------------- |
| 1.1 | **Ethers.js**                  | Library  | JavaScript library for Ethereum blockchain operations | Core technology for contract calls, transactions, and wallet integration | N/A (Library)                                  |
| 1.2 | **Alchemy SDK**                | SDK      | Enhanced API access to multiple blockchain networks   | Provides reliable RPC capabilities and advanced blockchain data access   | `ALCHEMY_API_KEY`                              |
| 1.3 | **Wagmi**                      | Hooks    | React hooks library for Ethereum                      | Simplifies blockchain state management in the frontend UI                | N/A (Library)                                  |
| 1.4 | **Viem**                       | Library  | TypeScript interface for Ethereum interactions        | Alternative to Ethers.js for blockchain operations                       | N/A (Library)                                  |
| 1.5 | **Web3Auth**                   | Auth     | Non-custodial wallet authentication                   | Simplifies wallet onboarding with social logins                          | *Requires project setup in Web3Auth dashboard* |
| 1.6 | **Account Abstraction**        | SDK      | Advanced wallet features by Alchemy                   | Enables gasless transactions and smart contract wallets                  | Uses `ALCHEMY_API_KEY`                         |
| 1.7 | **@metamask/providers**        | Library  | MetaMask integration                                  | Connects dApp to MetaMask wallet                                         | N/A (Library)                                  |
| 1.8 | **@walletconnect/sign-client** | Protocol | Multi-wallet connector                                | Provides broader wallet compatibility beyond MetaMask                    | *Requires WalletConnect project ID*            |
| 1.9 | **@metamask/onboarding**       | Library  | Guides users to install MetaMask                      | Assists users in wallet setup                                            | N/A (Library)                                  |

### 2. Storage Solutions

*Data storage across centralized and decentralized systems*

| ID  | Name            | Type          | Description                         | Importance                                              | Environment Variables                                                                                |
| --- | --------------- | ------------- | ----------------------------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| 2.1 | **MongoDB**     | Database      | Primary persistent data store       | Stores user data, NFT metadata, and application state   | `MONGO_URI`, `MONGO_URI_LOCAL`, `MONGO_DB_HOSTNAME`, `MONGO_DB_NAME`                                 |
| 2.2 | **Redis**       | Cache         | In-memory data store                | Handles session management and performance caching      | `REDIS_HOST`, `REDIS_PORT`                                                                           |
| 2.3 | **IPFS**        | Decentralized | Content-addressed storage           | Stores NFT media and provides decentralized file access | `IPFS_SERVICE`, `IPFS_GATEWAY`, `IPFS_API`                                                           |
| 2.4 | **Pinata**      | Service       | IPFS pinning service                | Ensures IPFS content availability and persistence       | `PINATA_KEY`, `PINATA_SECRET`, `PINATA_GATEWAY`                                                      |
| 2.5 | **GCP Storage** | Cloud         | Google Cloud Storage                | Stores media files, backups, and centralized content    | `GCP_PROJECT_ID`, `GCP_IMAGE_BUCKET_NAME`, `GCP_VIDEO_BUCKET_NAME`, `GCP_GATEWAY`, `GCP_CREDENTIALS` |
| 2.6 | **AWS S3**      | Cloud         | Amazon S3 object storage            | Alternative file storage and backup solution            | `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`                                                         |
| 2.7 | **Filebase**    | Service       | S3-compatible decentralized storage | Additional decentralized storage option                 | `FILEBASE_ACCESS_KEY`, `FILEBASE_SECRET_ACCESS_KEY`, `FILEBASE_BUCKET`                               |

### 3. Backend Services

*Server-side components and utilities*

| ID   | Name            | Type          | Description                   | Importance                                                     | Environment Variables                                       |
| ---- | --------------- | ------------- | ----------------------------- | -------------------------------------------------------------- | ----------------------------------------------------------- |
| 3.1  | **Express**     | Framework     | Web server and API framework  | Provides API endpoints, routing, and middleware infrastructure | N/A (Framework)                                             |
| 3.2  | **Mongoose**    | ODM           | MongoDB object modeling       | Handles database schema, validation, and operations            | Uses MongoDB variables                                      |
| 3.3  | **Socket.IO**   | Realtime      | WebSocket communication       | Enables live updates, notifications, and event handling        | N/A (Library)                                               |
| 3.4  | **Agenda**      | Scheduler     | Job scheduling for Node.js    | Manages background tasks and blockchain synchronization        | `SYNC_CONTRACT_REPEAT_EVERY`, `SYNC_CONTRACT_TASK_INTERVAL` |
| 3.5  | **Winston**     | Logging       | Structured logging utility    | Provides application logging and monitoring                    | `LOG_LEVEL`, `MONGO_LOG_COLLECTION`                         |
| 3.6  | **Morgan**      | Middleware    | HTTP request logger           | Tracks API requests for debugging                              | N/A (Middleware)                                            |
| 3.7  | **Multer**      | Middleware    | File upload handling          | Processes user-uploaded files                                  | N/A (Middleware)                                            |
| 3.8  | **Body Parser** | Middleware    | Request body parsing          | Handles JSON and form data in requests                         | N/A (Middleware)                                            |
| 3.9  | **Swagger**     | Documentation | API documentation             | Provides interactive API documentation                         | N/A (Documentation)                                         |
| 3.10 | **Node-fetch**  | Utility       | Server-side HTTP requests     | Facilitates API calls from backend services                    | N/A (Utility)                                               |
| 3.11 | **Cors**        | Middleware    | Cross-origin resource sharing | Enables frontend/backend communication                         | N/A (Middleware)                                            |
| 3.12 | **Nanoid**      | Utility       | ID generation                 | Creates unique identifiers for records                         | N/A (Utility)                                               |
| 3.13 | **Axios**       | HTTP Client   | Promise-based HTTP client     | Alternative for making API requests                            | N/A (Library)                                               |
| 3.14 | **Lodash**      | Utility       | JavaScript utility library    | Simplifies data manipulation and operations                    | N/A (Utility)                                               |

### 4. Frontend Framework

*User interface foundation*

| ID   | Name                  | Type       | Description                    | Importance                                            | Environment Variables                   |
| ---- | --------------------- | ---------- | ------------------------------ | ----------------------------------------------------- | --------------------------------------- |
| 4.1  | **React**             | Framework  | UI component library           | Core frontend framework                               | N/A (Framework)                         |
| 4.2  | **Redux Toolkit**     | State      | Global state management        | Manages application state and data flow               | N/A (Library)                           |
| 4.3  | **React Router**      | Navigation | Client-side routing            | Handles page transitions and navigation               | N/A (Library)                           |
| 4.4  | **Vite**              | Build      | Development server and bundler | Provides fast development and optimized builds        | Frontend env vars prefixed with `VITE_` |
| 4.5  | **TypeScript**        | Language   | Typed JavaScript               | Ensures type safety and improved developer experience | N/A (Language)                          |
| 4.6  | **Styled Components** | CSS        | Component-level styling        | Enables modular, maintainable UI styling              | N/A (Library)                           |
| 4.7  | **MUI Material**      | Components | React UI component library     | Offers pre-designed UI elements                       | N/A (Library)                           |
| 4.8  | **Bootstrap**         | CSS        | Responsive design framework    | Facilitates layout and responsive design              | N/A (Library)                           |
| 4.9  | **Zustand**           | State      | Lightweight state management   | Alternative to Redux for simpler state needs          | N/A (Library)                           |
| 4.10 | **React Hook Form**   | Forms      | Form management in React       | Simplifies form handling and validation               | N/A (Library)                           |

### 5. Media & Content Components

*Rich media handling and display*

| ID   | Name                     | Type      | Description             | Importance                                    | Environment Variables |
| ---- | ------------------------ | --------- | ----------------------- | --------------------------------------------- | --------------------- |
| 5.1  | **Video.js**             | Player    | Video playback library  | Core for NFT video content playback           | N/A (Library)         |
| 5.2  | **React Player**         | Component | Media player component  | Provides flexible media embed options         | N/A (Component)       |
| 5.3  | **React Dropzone**       | Upload    | File upload UI          | Enables drag-and-drop file uploads            | N/A (Component)       |
| 5.4  | **React Webcam**         | Media     | Camera access component | Facilitates live video capture                | N/A (Component)       |
| 5.5  | **React Multi Carousel** | UI        | Content carousel        | Showcases multiple items in scrollable format | N/A (Component)       |
| 5.6  | **React Modal**          | UI        | Dialog windows          | Handles user interactions and confirmations   | N/A (Component)       |
| 5.7  | **React Slick**          | UI        | Carousel alternative    | Additional option for content display         | N/A (Component)       |
| 5.8  | **React Tabs**           | UI        | Tabbed interfaces       | Organizes content in accessible tabs          | N/A (Component)       |
| 5.9  | **React Share**          | Social    | Social sharing buttons  | Enables content sharing on social platforms   | N/A (Component)       |
| 5.10 | **Reactjs Popup**        | UI        | Simple popup component  | Lightweight alternative for user feedback     | N/A (Component)       |
| 5.11 | **React Hot Toast**      | UI        | Toast notifications     | Provides unobtrusive user notifications       | N/A (Component)       |

### 6. Security & Authentication

*Application protection and access control*

| ID  | Name                | Type       | Description                   | Importance                                   | Environment Variables           |
| --- | ------------------- | ---------- | ----------------------------- | -------------------------------------------- | ------------------------------- |
| 6.1 | **JWT**             | Auth       | JSON Web Token authentication | Secures API access with token-based auth     | `JWT_SECRET`                    |
| 6.2 | **Express Session** | Session    | User session management       | Maintains persistent user sessions           | `SESSION_SECRET`, `SESSION_TTL` |
| 6.3 | **Lusca**           | Security   | Web vulnerability protection  | Guards against CSRF and XSS attacks          | N/A (Middleware)                |
| 6.4 | **Yoti**            | Identity   | Identity verification         | Provides enhanced user identity verification | `YOTI_CLIENT_ID`                |
| 6.5 | **Rate Limit**      | Middleware | Request throttling            | Prevents API abuse and DoS attacks           | `RATE_LIMIT_MINUTE`             |
| 6.6 | **CORS**            | Middleware | Cross-origin resource sharing | Controls cross-domain access to APIs         | N/A (Middleware)                |
| 6.7 | **Cookie Parser**   | Middleware | Cookie handling               | Processes cookies for auth and preferences   | N/A (Middleware)                |
| 6.8 | **Connect-Redis**   | Session    | Redis session store           | Integrates Redis with Express sessions       | Uses Redis variables            |

### 7. Wallet Integration

*Blockchain wallet connectivity*

| ID  | Name              | Type     | Description              | Importance                                           | Environment Variables               |
| --- | ----------------- | -------- | ------------------------ | ---------------------------------------------------- | ----------------------------------- |
| 7.1 | **MetaMask**      | Wallet   | Browser extension wallet | Primary user wallet connection method                | N/A (Client-side)                   |
| 7.2 | **WalletConnect** | Protocol | Multi-wallet connector   | Enables broader wallet compatibility                 | *Requires WalletConnect project ID* |
| 7.3 | **Web3Auth**      | Auth     | Social login for wallets | Simplifies wallet authentication experience          | *Requires Web3Auth credentials*     |
| 7.4 | **Alchemy AA**    | SDK      | Account abstraction      | Enables smart contract wallets and advanced features | Uses `ALCHEMY_API_KEY`              |

### 8. Development & DevOps

*Development workflow and quality tools*

| ID  | Name         | Type      | Description                  | Importance                                     | Environment Variables                                            |
| --- | ------------ | --------- | ---------------------------- | ---------------------------------------------- | ---------------------------------------------------------------- |
| 8.1 | **ESLint**   | Linter    | Code quality enforcement     | Maintains code standards and prevents errors   | N/A (Dev tool)                                                   |
| 8.2 | **Prettier** | Formatter | Code formatting              | Ensures consistent code style                  | N/A (Dev tool)                                                   |
| 8.3 | **Husky**    | Git Hooks | Pre-commit tasks             | Automates code quality checks                  | N/A (Dev tool)                                                   |
| 8.4 | **Nodemon**  | Dev       | Server auto-restart          | Improves development workflow efficiency       | N/A (Dev tool)                                                   |
| 8.5 | **Docker**   | Container | Application containerization | Ensures deployment and environment consistency | N/A (Infrastructure)                                             |
| 8.6 | **Vault**    | Security  | Secret management            | Securely manages application credentials       | `VAULT_URL`, `VAULT_*_APP_ROLE_ID`, `VAULT_*_APP_ROLE_SECRET_ID` |
| 8.7 | **Dotenv**   | Config    | Environment variables        | Manages configuration across environments      | N/A (Dev tool)                                                   |

### 9. Monitoring & Analytics

*Application health and user insights*

| ID  | Name                 | Type       | Description                | Importance                                          | Environment Variables                                                                                              |
| --- | -------------------- | ---------- | -------------------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| 9.1 | **Sentry**           | Monitoring | Error tracking             | Ensures application reliability and issue detection | `SENTRY_DSN`, `VITE_SENTRY_ENABLED`, `VITE_SENTRY_IO_ENDPOINT`, `VITE_SENTRY_IO_TRACE_RATE`, `VITE_SENTRY_RELEASE` |
| 9.2 | **Google Analytics** | Analytics  | Usage metrics              | Tracks user behavior and interactions               | `VITE_GOOGLE_ANALYTICS`, `VITE_GA_NAME`                                                                            |
| 9.3 | **Custom Events**    | Tracking   | Event monitoring           | Provides flexible interaction tracking              | N/A (Implementation-specific)                                                                                      |
| 9.4 | **React GA**         | Analytics  | Google Analytics for React | Integrates GA specifically with React               | Uses Google Analytics variables                                                                                    |

### 10. Microservices Architecture

*Core services that compose the application*

| ID   | Name                    | Type    | Description                     | Importance                                        | Environment Variables                                    |
| ---- | ----------------------- | ------- | ------------------------------- | ------------------------------------------------- | -------------------------------------------------------- |
| 10.1 | **rairnode**            | Service | Main backend API service        | Provides primary API endpoints and business logic | Multiple (see docker-compose)                            |
| 10.2 | **blockchain-networks** | Service | Blockchain data synchronization | Syncs data from multiple blockchain networks      | Multiple (see docker-compose)                            |
| 10.3 | **media-service**       | Service | Media processing service        | Handles media file processing and delivery        | `MEDIA_SERVICE_PORT`, `BASE_RAIRNODE_URL` + storage vars |
| 10.4 | **rair-redis**          | Service | In-memory data store            | Manages sessions and caching                      | Redis configuration                                      |
| 10.5 | **minting-network**     | Service | Frontend dApp                   | User-facing application for NFT minting           | Frontend-specific variables                              |

### 11. Blockchain Networks

*Supported blockchain networks in the system*

| ID   | Name                      | Type    | Description                 | Importance                              | Environment Variables                                                                                                                                                                |
| ---- | ------------------------- | ------- | --------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 11.1 | **Ethereum Mainnet**      | Network | Production Ethereum network | Primary Ethereum blockchain environment | `ETHEREUM_MAINNET_RPC`, `ETHEREUM_MAINNET_FACTORY_ADDRESS`, `ETHEREUM_MAINNET_MINTER_ADDRESS`                                                                                        |
| 11.2 | **Ethereum Sepolia**      | Network | Ethereum testnet            | Testing environment for Ethereum        | `ETHEREUM_TESTNET_SEPOLIA_RPC`, `SEPOLIA_FACTORY_ADDRESS`, `SEPOLIA_MINTER_ADDRESS`, `SEPOLIA_DIAMOND_FACTORY_ADDRESS`, `SEPOLIA_DIAMOND_MARKETPLACE_ADDRESS`                        |
| 11.3 | **Polygon/Matic Mainnet** | Network | Production Polygon network  | Scalable production environment         | `MATIC_MAINNET_RPC`, `MATIC_MAINNET_FACTORY_ADDRESS`, `MATIC_MAINNET_MINTER_ADDRESS`, `MATIC_MAINNET_DIAMOND_FACTORY_ADDRESS`, `MATIC_MAINNET_DIAMOND_MARKETPLACE_ADDRESS`           |
| 11.4 | **Polygon/Matic Mumbai**  | Network | Polygon testnet             | Testing environment for Polygon         | `MATIC_TESTNET_RPC`, `MATIC_MUMBAI_FACTORY_ADDRESS`, `MATIC_MUMBAI_MINTER_ADDRESS`, `MATIC_MUMBAI_DIAMOND_FACTORY_ADDRESS`, `MATIC_MUMBAI_DIAMOND_MARKETPLACE_ADDRESS`               |
| 11.5 | **Binance Smart Chain**   | Network | Production BSC network      | Alternative production blockchain       | `BINANCE_MAINNET_RPC`, `BINANCE_MAINNET_FACTORY_ADDRESS`, `BINANCE_MAINNET_MINTER_ADDRESS`, `BINANCE_MAINNET_DIAMOND_FACTORY_ADDRESS`, `BINANCE_MAINNET_DIAMOND_MARKETPLACE_ADDRESS` |
| 11.6 | **Binance Testnet**       | Network | BSC testnet                 | Testing environment for BSC             | `BINANCE_TESTNET_RPC`, `BINANCE_TESTNET_FACTORY_ADDRESS`, `BINANCE_TESTNET_MINTER_ADDRESS`, `BINANCE_TESTNET_DIAMOND_FACTORY_ADDRESS`, `BINANCE_TESTNET_DIAMOND_MARKETPLACE_ADDRESS` |
| 11.7 | **Base**                  | Network | Production Base network     | Ethereum L2 scaling solution            | `BASE_MAINNET_RPC`, `BASE_DIAMOND_FACTORY_ADDRESS`, `BASE_DIAMOND_MARKETPLACE_ADDRESS`                                                                                               |
| 11.8 | **Astar**                 | Network | Production Astar network    | Polkadot parachain integration          | `ASTAR_MAINNET_RPC`, `ASTAR_DIAMOND_FACTORY_ADDRESS`, `ASTAR_DIAMOND_MARKETPLACE_ADDRESS`                                                                                            |

### 12. External Services

*Third-party integrations*

| ID   | Name                      | Type          | Description                | Importance                                | Environment Variables                                |
| ---- | ------------------------- | ------------- | -------------------------- | ----------------------------------------- | ---------------------------------------------------- |
| 12.1 | **Alchemy**               | Blockchain    | Enhanced RPC provider      | Provides reliable blockchain connectivity | `ALCHEMY_API_KEY`                                    |
| 12.2 | **Pinata**                | Storage       | IPFS pinning service       | Ensures decentralized content persistence | `PINATA_KEY`, `PINATA_SECRET`, `PINATA_GATEWAY`      |
| 12.3 | **Google Cloud Platform** | Cloud         | Cloud services provider    | Hosts various infrastructure components   | `GCP_PROJECT_ID`, `GCP_CREDENTIALS`, etc.            |
| 12.4 | **Sentry.io**             | Monitoring    | Error tracking service     | Tracks application errors and performance | `SENTRY_DSN`                                         |
| 12.5 | **Zoom**                  | Communication | Video meetings integration | Facilitates video communication features  | `ZOOM_API_KEY`, `ZOOM_API_SECRET`, `ZOOM_MEETING_ID` |
| 12.6 | **Yoti**                  | Identity      | ID verification service    | Provides KYC and identity verification    | `YOTI_CLIENT_ID`                                     |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.rairprotocol.org/rairprotocol/integrations/core-technologies.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
