Overview
In the above diagram you can see an overview of our architecture. Below we'll break down each of the individual elements

dApp

Currently our dApp's code is located here: https://github.com/pangolindex/interface
We have linked our deployment to our branches, specifically dev and master this means that anytime a deployment occurs on the dev branch, a deployment will automatically trigger to deploy the updates to https://beta-app.pangolin.exchange/ and for master it will deploy to https://app.pangolin.exchange/

Components

Pangolin's UI was originally a Uniswap V2 fork. As we've progressed on our multi chain journey it's become apparent that Uniswap's codebase was never designed to take into account a multi chain paradigm. As part of us migrating to our new UI, we've moved all our new multi chain components into a separate repository that will allow us to decouple from the original Uniswap code incrementally.
You can find the code repository here https://github.com/pangolindex/components
We are firm believers in a modular architecture and as such any widget you can see on Pangolin's new UI is available as a component. For example, DEX as a Service (DaaS) allows any project to import Pangolin's Swap Widget into their website.
Another common use case is supporting a multi VM wallet via your application. Now all you need to do is import Pangolin's wallet component

SDK

You can find the SDK repository here: https://github.com/pangolindex/sdk
Key thing to take note of here is the Chain interface. This interface will define each chain Pangolin is live on as well as the key contract addresses. The Interface repository will then use a specific version of the SDK in the package.json which will then dynamically display the chains that are live.
Please note: We may move this data to our Directus Headless CMS in the future.

Directus Headless CMS

We use Directus for our headless CMS. We deploy the following data end points:
We use this in the following components:
And then eventually our tokenlists will come directly from the API.

Smart Contracts

Please refer to our Contracts section under Security & Contracts

External API's

We currently use the following external API's:
We use Coingecko in order to provide historical prices on our Portfolio component
And we use DeBank to show your Portfolio balances:

Gelato Limit Orders

We leverage Gelato in the backend in order to allow limit orders through Pangolin.

Graph Subgraphs

You can find our repository here: https://github.com/pangolindex/subgraph
Last modified 3mo ago
Copy link
Outline
dApp
Components
SDK
Directus Headless CMS
Smart Contracts
External API's
Gelato Limit Orders
Graph Subgraphs