/kwenta

Primary LanguageTypeScriptMIT LicenseMIT

Kwenta CI kwenta Discord Twitter Follow

Kwenta

A dApp enabling derivatives trading with infinite liquidity — powered by the Synthetix protocol.

The trading UI is available on IPFS kwenta.eth.link and kwenta.io.
ENS link: kwenta.eth.

Tech stack

  • Next.js
  • React
  • React Query
  • Recoil
  • Unstated-next
  • Styled-Components
  • Immer

Ethereum stack

  • ethers.js v5 - Ethereum wallet implementation.
  • Blocknative Onboard - for ethereum wallet connectivity.
  • Blocknative Notify - for tx notifications.
  • synthetix-data - for historical data (powered by TheGraph).
  • @synthetixio/contracts-interface - for interactions with the Synthetix protocol.

Development

Install dependencies

npm i

Set up environment variables

Copy the .env.local.example file in this directory to .env.local (which will be ignored by Git):

cp .env.local.example .env.local

Then, open .env.local and add the missing environment variables:

  • NEXT_PUBLIC_PORTIS_APP_ID - Portis app id (get it from portis.io)
  • NEXT_PUBLIC_BN_NOTIFY_API_KEY - Blocknative Notify API key (get it from blocknative.com)
  • NEXT_PUBLIC_BN_ONBOARD_API_KEY - Blocknative Onboard API key (get it from blocknative.com)
  • NEXT_PUBLIC_INFURA_PROJECT_ID - Infura project id (get it from infura.io)

Run

npm run dev

Open http://localhost:3000 to view it in the browser.

Build

npm run build
npm start