A dApp enabling derivatives trading — powered by the Synthetix protocol.
The decentralized trading UI is available at kwenta.eth.limo.
ENS link: kwenta.eth.
The latest IPFS hash can be found under releases.
Kwenta welcomes contributors. Regardless of the time you have available, everyone can provide meaningful contributions to the project by submitting bug reports, feature requests or even the smallest of fixes! To submit your contribution, please fork, fix, commit and create a pull-request describing your work in detail. For more details, please have a look at the Contribution guidelines.
- Next.js
- React
- Redux
- Kwenta SDK
- Styled-Components
- ethers.js v5 - Ethereum wallet implementation.
- Rainbowkit - for ethereum wallet onboarding.
- Contributing to the Kwenta frontend - Kwenta Code Style Guidelines
- The devDAO - How to contribute
pnpm install
Copy the .env.local.example
file in the packages/app
directory to .env.local
(which will be ignored by Git):
cd packages/app
cp .env.local.example .env.local
Then, open .env.local
and add the missing environment variables:
Required:
NEXT_PUBLIC_PROVIDER_ID
- Specifies the default provider, options areINFURA
orBLAST_API
NEXT_PUBLIC_INFURA_PROJECT_ID
- Infura project id (get it from infura.io) orNEXT_PUBLIC_BLASTAPI_PROJECT_ID
- Blast API project id (get it from blastapi.io)NEXT_PUBLIC_SOCKET_API_KEY
- Socket API key (get it from socket.techNEXT_PUBLIC_SATSUMA_API_KEY
- API key for Satsuma subgraph queriesNEXT_PUBLIC_THEGRAPH_API_KEY
- API key for The Graph's decentralized serviceNEXT_PUBLIC_DEFAULT_PRICE_SERVICE
- Specifies the default price server, options areKWENTA
orPYTH
NEXT_PUBLIC_SERVICES_PROXY
- Specify Kwenta proxy server
cd packages/app
pnpm dev
Open http://localhost:3000 to view it in the browser.
cd packages/app
pnpm build
pnpm start
cd packages/app
pnpm test:jest
For unit tests we use a combination of Jest and React Testing Library
Page tests should be added to the testing
folder at the root as it is not possible to co-locate tests and pages in nextjs. Other tests should be co-located in a __tests__ folder next to their related file.
Join the community on the Kwenta Discord server!