Skip to content

Latest commit

 

History

History

README.md

Quicknode Solana Token-Minter Demo

Overview

This is a simple demo let's you create a fungible token on the Solana blockchain. The demo will:

Preview

The demo uses Next.js 14 project bootstrapped with create-next-app.

Getting Started

Install Dependencies

Open the project dictory:

cd sample-dapps/solana-token-maker

Then, install the dependencies:

npm install
# or
yarn
# or
pnpm install
# or
bun install

Set Environment Variables

Make sure you have a Quicknode endpoint handy--you can get one free here.

  • Rename .env.example to .env.local and update with your Quicknode Solana Node Endpoint and Quicknode IPFS key.
  • Make sure to update the cluster to ensure your transaction URLs point to the correct explorer (use only of the enum values provided in the .env.example file).
  • You can use Quicknode's public IPFS Gateway URL or replace it with your own.
QN_IPFS_API=QN_abc123456789xyz_REPLACE_THIS
QN_ENDPOINT=https://example.solana-mainnet.quiknode.pro/123456
NEXT_PUBLIC_CLUSTER=mainnet-beta # mainnet-beta | devnet | testnet | local
NEXT_PUBLIC_GATEWAY_URL=https://quicknode.quicknode-ipfs.com/ipfs/

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

Using the Dapp

  1. Upload an Image (this will be used for your token metadata)
  2. Fill out the form with the token details
  3. Connect your wallet
    • Make sure you have ~0.04 SOL in your wallet to cover the new account fees
    • If you are using Devnet, you can get free SOL from the Solana Faucet
  4. Click "Mint" to upload your image and metadata to IPFS and mint your token!

Architecture

src/
├── app/
│   ├── page.tsx
│   └── layout.tsx
│   └── api/
│       └── solana/
│           └── createMintTx/route.ts   # Create New Mint Transaction   
│           └── sendAndConfirm/route.ts # Send and Confirm Transaction
│       └── upload/
│           └── image/route.ts  # IPFS Image Upload
│           └── json/route.ts   # IPFS JSON Upload
└── components/
    ├── SolanaProviders.tsx     # Wallet Adapter Context providers
    ├── Minter.tsx              # Main component
    └── [supporting components]

Deploy on Vercel

Deploy with Vercel

Next.js Documentation

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!