Technical Architecture
These are the major components we use in our technical architecture:
- Smart Contracts:
- Our solidity smart contracts are owned by a multi-sig wallet, use OpenZeppelin's upgradeable design pattern, and use of OpenZeppelin's Defender to perform the contract administration
- We use both off-line and online automation to automate many tasks, including auto-claiming all contracts at expiry, determining the time of channel breakout for Channel / Epoch, creating/starting Epochs, etc.
- This will be open sourced at some point after our audits are complete
- Front End UI:
- The front end is hosted at AWS and is written in ReactJS
- It is globally cached at edge servers and made highly available using AWS CloudFront, which also protects it against various types of web DOS attacks
- We have various AWS uptime monitors running against the front end
- We use geo-fencing using AWS CloudFront's functionality to restrict production access
- We check and restrict wallets on the OFAC restricted account lists
- This will not be open sourced
- Front end off-chain Price Indication Server:
- In order to minimize direct load to get Chainlink prices for the front end, we implemented an off-chain price server on AWS that is accessible via REST web service calls with highly scalable AWS lambda functions as part of the AWS's API Gateway
- The official pricing is done on-chain via Chainlink's oracles
- This is not open sourced
- GraphQL:
- Our schema and mapping code is not open sourced
- Partner Integration Services:
- For our integration partners only, we offer REST API calls hosted on AWS and secured by individual API keys to get supported assets and offers to display
- Making purchases and claims must be done directly to the smart contract by the integration partner in order to safeguard their private keys.
- We provide example code to help with this process
Last modified 1mo ago