quai-next-dapp is a boilerplate dApp built on top of Quai Network using the NextJS framework in tandem with shadcn. The live version of this site is hosted at quai-next-dapp.vercel.app.
- Using Pelagus Wallet in your application
 - Handling accounts and data from all shards
 - Fetching transaction data, tokens, and NFTs from Quaiscan
 - Using the quais SDK to interact with Quai Network
 
Clone the repository and install the dependencies:
git clone https://github.com/dominant-strategies/quai-next-dapp.git
cd quai-next-dapp
npm installRun the development server:
npm run devOpen http://localhost:3000 with your browser to see the page.
Pelagus connection is achieved via the quais.BrowserProvider() method. The logic for connecting to Pelagus is located in the lib/useGetAccounts.ts and requestAcccounts.ts files.
- The logic in 
useGetAccountsalways runs on page load and attempts to get the user's accounts if connected. It also initiates a listener for theaccountsChangedevent. - The logic in 
requestAccountsis only used in response to a direct user action. It prompts the user to connect their wallet and returns the accounts if successful. 
quai-next-dapp fetches transaction data, tokens, and NFTs from the Quaiscan API. The logic for fetching data is located in the lib/api/requests.ts and the pages/api/ directory. NextJS API routes are used to fetch data server-side and return it to the client.
- The logic in 
requests.tsis used to fetch and transform data from NextJS API routes. - The logic in the 
pages/api/directory is used to fetch data from the Quaiscan API and return it to the client. 
quai-next-dapp uses shadcn for styling and layout.
