Using Anchor, create a 2-sided marketplace model for services. Vendors should be able to list services, with service agreements represented by metadata in NFTs. Consumers should be able to purchase service NFTs. The marketplace should support soulbound and non-soulbound NFTs and collect royalties on resales.
-Develop a 2-sided marketplace using Anchor.
-Allow vendors to list services as NFTs.
-Enable consumers to purchase service NFTs.
-Support soulbound and non-soulbound NFTs, with royalty collection for resales.
-
Node v18.18.0 or higher
-
Rust v1.77.2 or higher
-
Anchor CLI 0.30.0 or higher
-
Solana CLI 1.18.9 or higher
[dependencies]
anchor-lang = {version = "0.30.1", features = ["init-if-needed", "interface-instructions", "allow-missing-optionals"] }
anchor-spl = "0.30.1"
mpl-core = { version = "0.7.2", features = [ "anchor" ] }
[toolchain]
anchor_version = "0.30.1"
git clone https://github.com/0xGRAV3R/two-sided-marketplace-for-services.git
cd two-sided-marketplace-for-services
npm install
npm run dev
This is a Solana program written in Rust using the Anchor framework.
You can use any normal anchor commands. Either move to the anchor
directory and run the anchor
command or prefix the command with npm run
, eg: npm run anchor
.
Running this command will create a new keypair in the anchor/target/deploy
directory and save the address to the Anchor config file and update the declare_id!
macro in the ./src/lib.rs
file of the program.
You will manually need to update the constant in anchor/lib/counter-exports.ts
to match the new program id.
npm run anchor keys sync
npm run anchor-build
npm run anchor-localnet
npm run anchor-test
npm run anchor deploy --provider.cluster devnet
This is a React app that uses the Anchor generated client to interact with the Solana program.
Start the web app
npm run dev
Build the web app
npm run build