/eralink

Shorten and immortalize your links, text, and files on-chain with zkSync Era

Primary LanguageVueMIT LicenseMIT

Link to Eternity

Shorten and immortalize your links, text, and files anonymously on-chain with zkSync Era, making them accessible forever.

Use Cases

  1. Document Verification: Ensure the authenticity of critical documents by storing them on-chain, making it easy to prove they haven't been altered.
  2. Proof of Concept or Idea: Timestamp your unique ideas or concepts, providing evidence of originality at a specified time.
  3. Permanent Content Sharing: Share important links, texts, or files that remain accessible indefinitely, bypassing traditional web hosting limitations.
  4. Trustless Data Storage: Store data in a transparent manner where anyone can verify its authenticity without relying on intermediaries.
  5. Decentralized Archiving: Archive critical information ensuring it's safeguarded against central points of failure or censorship.

🚀 Quick Start

EraLink Preview

Use EraLink directly via eralink.netlify.app.


Structure

The project is organized into two main directories:

  • contracts: This folder houses the Hardhat environment and Solidity contracts which include Paymaster, Text Storage, and Upgradable Contract.
  • frontend: Developed using Nuxt 3 and Vue, this directory contains all the frontend components of the application.

Development

Prerequisites:

  • Node v18.x+
  • Yarn

Contracts:

  • Compile contracts: yarn hardhat compile
  • Contracts deployment:
    1. Set the defaultNetwork in hardhat.config.ts to choose the deployment network.
    2. Rename .env.example to .env and enter the private key for the wallet that will handle contract deployment fees. Ensure this account has sufficient ETH.
    3. Deploy Text Storage and Upgradable Proxy: yarn deploy:text-storage
    4. For Paymaster deployment, update TEXT_STORAGE_PROXY_ADDRESS in /deploy/deploy-paymaster.ts, then run yarn deploy:paymaster. Don't forget to send some ETH to the Paymaster so it can pay for transactions.

Frontend:

  1. Rename .env.example to .env and fill in WALLET_CONNECT_PROJECT_ID (create one here) and WEB3_STORAGE_KEY (generate one here).
  2. Start in development mode with npm run dev
  3. Build for production using npm run generate

Tests

No tests available at the moment :(

Resources Used in Development

📜 License

This project is licensed under MIT.