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
The on-chain pricing uses Chainlink as our oracle
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
We use Alchemy RPCs to access the blockchain
Charts and financial information are provided by TradingView, a popular trading and charting platform. Check out the gold chart or explore bitcoin chart directly from their website.
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:
We use the Graph as our database of on-chain events
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
Please contact us at partners@bracket.fi to learn more
Last updated