Web Proofs is a TypeScript library designed to help your application generate web proofs with Pluto, enabling seamless integration with our iOS mobile app and chrome extension. This library provides easy-to-use components and utility functions to get you up and running.
- 🌐 Cross-platform support (iOS, Desktop)
- 🔒 Secure proof generation
- ⚛️ React integration
- 🔧 Vanilla JavaScript support
- 🎨 Customizable UI
To get started, install the package using npm:
npm install @plutoxyz/web-proofs
For documentation and guides, visit docs.pluto.xyz
For help, discussion about best practices, or any other conversation that would benefit from being searchable:
For casual chit-chat with other developers:
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch
git checkout -b feature/AmazingFeature
- Commit your Changes
git commit -m 'Add some AmazingFeature'
- Push to the Branch
git push origin feature/AmazingFeature
- Open a Pull Request
This repository includes three demo applications inside the demo/ folder to showcase different usage scenarios:
- React Demo (uses Vite + React)
- JavaScript Demo
- Next.js Demo
All three demos can be run against a local build of @plutoxyz/web-proofs to test changes in real time.
- Node.js 20.x or higher
- npm or yarn
- Git
- Nodemon
Clone this repository:
git clone https://github.com/pluto/web-proofs.git
cd web-proofs
Install dependencies:
npm install
nodemon
To test your local build in the demos, you need to link the built library into them. In one terminal:
From the project’s root (where package.json and rollup.config.js live):
npm link
This registers your local @plutoxyz/web-proofs package globally on your system.
Then within each demo folder you want to test, run:
cd demo # or demo/nextjs for nextjs demo
npm install # Install the demo's own dependencies
npm link @plutoxyz/web-proofs
This tells the demo to use your locally linked version of @plutoxyz/web-proofs instead of a published npm version.
Note: You do not need to edit your import statements (e.g., import { prove } from '@plutoxyz/web-proofs' stays the same). Linking handles the resolution to your local build automatically.
There are three demos in the demo/ folder. You can run them independently.
Folder: demo/ (this is a Vite + React setup). In demo/, ensure dependencies are installed and the link is established:
cd demo
npm install
npm link @plutoxyz/web-proofs
npm run dev
Open http://localhost:5173 (or whatever Vite logs) in your browser.
The JavaScript Demo is configured as an additional entry point in the Vite configuration. The demo’s HTML and script reside in the demo/javascriptDemo/
folder. You don’t need to run its own server—instead, run the main demo server and navigate to it.
cd demo/javascriptDemo
npm install
npm link @plutoxyz/web-proofs
Open your browser and go to:
http://localhost:3000/javascriptDemo
This will load demo/javascriptDemo/index.html
where main.js
is executed
Folder: In demo/nextjs, install and link:
cd demo/nextjs
npm install
npm link @plutoxyz/web-proofs
npm run dev
Open http://localhost:3000 and you’ll see the Next.js-based proof example rendering the component.
This project is licensed under the MIT License - see the LICENSE.md
file for details.