๐Freehold
Solana NFTs made easy
๐ฎ Overview
Freehold is an NFT service that aims to make the creation and exploration of NFTs on the Solana blockchain as easy as possible. While existing solutions predominantly focus on catering to generative art projects, Freehold is focused on unlocking the utility of NFTs.
Current features include:
A simple UI for creating NFTs with custom metadata
Automatic collection verification
Easily find owned and created NFTs
Token-gated experience facilitation
An easy-to-use API that enables automated edition printing
As an example of the last bullet point above, Rhove utilizes Freehold's API to reward investors on its platform with an editioned NFT commemorating their investment. A separate party could then also utilize Freehold's API to filter a user's owned NFTs to just those matching the Rhove collection and provide additional utility if there's a match.
There are big plans in store for Freehold's future. View our Roadmap section to learn more.
๐งโ๐ป Running Locally
In order to run this repository locally, you must first copy the contents of .env.sample
to .env.local
. The only required environment variables are NEXT_PUBLIC_RPC_DEVNET
and NEXT_PUBLIC_RPC_MAINNET_BETA
which have the publicly available RPC nodes from the Solana Foundation included by default.
If you wish to utilize the built-in API, the SOLANA_PRIVATE_KEY
variable will also need set. To prevent unauthorized access to the endpoints that interact with that private key, basic auth credentials can be set via the BASIC_AUTH_USER
and BASIC_AUTH_PASSWORD
variables.
Once .env.local
is set up, simply start the local server with:
next dev
You should see your environment variables being loaded as well as confirmation that the server is now running on http://localhost:3000
.
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
info - Loaded env from [...]/freehold/.env.local
wait - compiling...
event - compiled client and server successfully in 1770 ms (1813 modules)
๐ Repository Structure
Top-level directories:
โโโ components/ # Reusable React components
โโโ contexts/ # Custom React contexts
โโโ pages/ # File-based page routing, see next.js docs for more info
โ โโโ api/ # File-based API endpoints, see next.js docs for more info
โโโ public/ # Publicly available files such as images and logos
โโโ styles/ # Theming related files (light mode, dark mode, and global)
โโโ utils/ # Utility functions for the API
Notes and resources:
Next.js file-based page routing and API endpoints
Filenames beginning with an underscore within the
pages/
directory are excluded from showing up as a page or API endpointThe
utils/
directory includes functions that are able to be used within the API endpoint files (which cannot utilize contexts or hooks as they are not React components)
๐ฆพ Tech Stack
Library
Repository link
Description
๐ Roadmap
Here's a sneak peek of what we plan to grow Freehold into:
Have an idea that isn't listed here? We'd love to hear about it! Please create a post in the discussion board.
Last updated