This application shows the basic functionality of NFTs on the XPR Network blockchain through the use of the WebAuth Web SDK.
This is built off of atomicassets NFT framework.
- API Documentation for atomicassets (mainnet)
- API Documentation for atomicmarket (mainnet)
- API Documentation for atomicassets (testnet)
- API Documentation for atomicmarket (testnet)
Run a docker container:
docker build nft-demo .
docker images
docker run -p 3000:3000 -i -d [image id]
git clone https://github.com/XPRNetwork/nft-demo.git
npm install
npm run dev
Create a copy of .env.template
and name it .env.local
:
For mainnet:
NEXT_PUBLIC_CHAIN_ENDPOINTS='https://proton.eoscafeblock.com, https://proton.greymass.com'
NEXT_PUBLIC_BLOCK_EXPLORER='https://proton.bloks.io/block/'
NEXT_PUBLIC_NFT_ENDPOINT='https://proton.api.atomicassets.io'
BACKEND_ENDPOINT = string;
PROTON_MARKET_JWT_SECRET = string;
For testnet:
NEXT_PUBLIC_CHAIN_ENDPOINTS='https://testnet.protonchain.com'
NEXT_PUBLIC_BLOCK_EXPLORER='https://proton-test.bloks.io/block/'
NEXT_PUBLIC_NFT_ENDPOINT='https://test.proton.api.atomicassets.io'
BACKEND_ENDPOINT = string;
PROTON_MARKET_JWT_SECRET = string;
The marketplace page consists of templates of a specific collection_name
.
- The
Template
object is extended with the following custom property:lowestPrice
.lowestPrice
(string) is determined by checking the Sales API for assets listed for sale and finding the lowest price of the assets of that particular template.
The My NFTs
page consists of the current user's assets. Each user is only allowed to view their own collection page in this demo.
- The
Asset
object is extended with the following custom properties:isForSale
andsalePrice
.isForSale
(boolean) is determined by checking the Sales API for currently listed sales using theasset_id
andseller
(current user'schainAccount
)salePrice
(string) is determined by checking the Sales API and combining an asset'slisting_price
andlisting_symbol