Soap is a cutting-edge token dispenser built on Solana that simplifies the creation and distribution of digital collectibles. It allows event organizers to issue attendance tokens, airdrop aftermovies, and send invitations for future events. For Spaces enthusiasts, it enables the distribution of Soaps for each space, while rewarding loyal fans with airdrops and exclusive content.
The Soap name and brand is CC0 licensed, meaning anyone can use it any way they want. Soap is not a registered trademark.
The creator portal only works locally on the Next version. There's a nuxt
branch with an implementation in Nuxt 3.
Grizzlython submission video
- Create a new keypair locally using
solana-keygen new -o soapkeypair.json
. - Open the
soapkeypair.json
file, and copy its contents[18,223,250,12...]
. - Open your desktop wallet, and import this private key.
- Go to Shadow Storage and create a new space using the
soapkeypair
wallet. Open the space, and copy it's address from the URL (pubkey).
- Clone the repo, open in your editor
- Rename
.env.local.example
to.env.local
, and open it. - Adjust all values to your setup, and save the file.
SOAP_KEYPAIR
issoapkeypair.json
API_KEY
is not needed in case a public RPC is used.
- Run
yarn dev
, and you'll be able to create soaps on your own.
To customize the mintor portal (/dealer
), you need to deploy your own version of the soap program. The program deployed at soap4c4g3L9vQUQYSCJxhTbHdJYSiX3aZPzPGnp2CoN
only accepts mintTo
transactions from aquaZKhcuUU1KetKdzNzumpbzEvcyHMqbkyysnMjMWr
, which is the keypair running on the deployed backend. See the constraint at /programs/src/constants.rs
.
- Run
anchor build
, followed byanchor keys list
to get your program's pubkey. Search and replace allsoap4c4g3L9vQUQYSCJxhTbHdJYSiX3aZPzPGnp2CoN
to your program's ID. - Run
anchor deploy
(deployment costs ~4.8 SOL) - Run
yarn solita
to generate the Solita SDK with the new program ID - Execute
yarn dev
to run the frontend.
This is a Next.js project bootstrapped with create-next-app
.
First, run the development server:
npm run dev
# or
yarn dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying pages/index.js
. The page auto-updates as you edit the file.
API routes can be accessed on http://localhost:3000/api/hello. This endpoint can be edited in pages/api/hello.js
.
The pages/api
directory is mapped to /api/*
. Files in this directory are treated as API routes instead of React pages.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.