Attestations are fundamental in blockchain technology, allowing entities to establish credibility and trust. However, traditional attestation methods face numerous challenges, including fragmentation, difficulty in managing schemas, and lack of intuitive tools for end-users.
The **Ethereum Attestation Service (EAS)** aims to solve these issues by providing a streamlined protocol for creating and managing attestations on Rootstock. The EAS Devtool enhances usability, making it easier for developers to interact with attestations.
This guide explores the challenges of attestation, why EAS is a great choice for developers, and provides a step-by-step tutorial on using the EAS Devtool and Indexing Service on Rootstock.
## What is EAS
[Ethereum Attestation Service (EAS)](https://attest.org/) is a system that allows individuals and organizations to create verifiable claims or proofs about specific events, actions, or data, either on-chain (on the blockchain) or off-chain (outside the blockchain but linked to it).
These claims can be about anything, like proving someone's identity, verifying ownership, or confirming that an agreement has been fulfilled.
Making these claims or proofs publicly verifiable and tamper-proof helps build trust without relying on centralized entities. The attestations created through EAS can be used in decentralized applications (dApps), identity systems, or smart contracts to ensure certain facts are validated and transparent.
:::info[Info]
[EAS](https://attest.org/) is an open-source platform, meaning anyone can use it or contribute to its development. It operates as a public good for the Ethereum ecosystem.
:::
## Challenges in Attestation
* **Trust and Credibility:**
The fundamental challenge of attestation lies in establishing and maintaining trust. While blockchain technologies provide transparency, the credibility of an attestation depends on the reputation and reliability of the attestation source, the verification mechanism behind the attestation, and the potential for manipulation or false attestations.
* **Privacy and Data Protection:**
Attestations often involve sensitive personal or organizational information, creating critical privacy concerns such as balancing transparency with individual privacy rights, preventing unauthorized access to attestation data, implementing zero-knowledge proof technologies to validate information without exposing raw data, and ensuring compliance with evolving data protection regulations across different jurisdictions.
* **Scalability and Performance:**
As blockchain networks grow, attestation systems face significant technical challenges, including managing high volumes of attestations without compromising network performance, minimizing transaction costs and computational overhead, ensuring fast verification processes, and designing efficient storage and retrieval mechanisms for large-scale attestation networks.
## Onchain and Offchain Attestations
Onchain Attestations: These are attestations stored directly on Rootstock. They are immutable and benefit from the security of Bitcoin. They work best when attestations need to be read by smart contracts or verify that it’s available on chain.
Offchain Attestations: These attestations are stored on Rootstock, typically in a database or another storage mechanism like IPFS. They are linked to the blockchain through cryptographic signatures but do not reside on it. Offchain attestations work best when you want to hold the attestation privately and shared on a need to know basis.
Learn about [Rootstock Attestation Service](/dev-tools/attestations/ras/).
## Prerequisites
Before you begin, ensure you have the following set up:
1. **Docker**: Installed on your system with a basic understanding of how to use it. Docker is essential for running services like the EAS Indexing Service in a containerized environment.
2. **Node.js**: Installed on your system. Ensure you have Node.js (version 14.x or later) to run the EAS React Tool and related scripts.
3. **Rootstock RPC API Key**: Obtain a valid API key for Rootstock RPC to connect to the blockchain network. This is crucial for interacting with the EAS contracts deployed on Rootstock.
## Setting Up the EAS Indexing Service
The Indexing Service acts as the backbone of the EAS ecosystem, providing the data infrastructure required for the React Tool to function effectively. Without the Indexing Service, the React Tool cannot fetch, manage, or display attestation data.
Let’s explore why this step is essential and understand what each component does.
### What is the EAS Indexing Service?
The EAS Indexing Service is responsible for:
1. **Indexing Blockchain Data**: It monitors the blockchain and indexes all the attestation-related events. This ensures that attestation data is organized and accessible in real time.
2. **Providing a Queryable API**: The service exposes a GraphQL API that allows the EAS React Tool to fetch attestation data efficiently.
3. **Handling Large Data Volumes**: It processes and stores data in a database (e.g., PostgreSQL), enabling rapid data retrieval even for applications with significant usage.
:::warning[Warning]
Before you start using the **EAS React Tool** (Devtool), it's crucial to set up and run the **EAS Indexing Service**.
The EAS Indexing Service enables efficient data fetching for attestations. Here’s how to set it up:
:::
````mdx-code-block
Docker Engine Running" (fig 1.)
You can find this at the bottom left of your screen
:::
EAS Indexer Container Running Successfully (fig 2.)
````
## Setting Up the EAS Devtool
The EAS React Tool is a user-facing platform that leverages the data provided by the Indexing Service to:
1. **Display Attestations**: It visualizes schemas and attestation data in an intuitive interface.
2. **Allow User Interaction**: Users can create schemas and make attestations through this tool.
3. **Streamline Workflow**: Developers can interact with attestation data without manually querying the blockchain or API.
````mdx-code-block
EAS Dashboard on DevTool (fig 3.)
````
:::info[Info]
Once you've set up and run the `EAS DevTool` locally, you can proceed to explore its **[dashboard](/dev-tools/attestations/eas/user-guide/)** and functionality in detail. The following guide will walk you through navigating the `EAS Dashboard`, connecting your `wallet`, and managing `schemas` and `attestations`.
:::