supagraph
v0.0.1-rc.69
Published
Open-source toolkit for building efficient cross-chain indexes from onchain data
Downloads
506
Maintainers
Readme
Supagraph
Supagraph is an open-source toolkit for building efficient cross-chain indexes from onchain data.
Features
- ✅ - Index multiple chains with a single service
- ✅ -
onBlock
/onTransaction
and logevent
handlers in typescript (with side-effects) - ✅ - Fast initial load and reloads using
queryFilters
and a local cache - ✅ - Handle
async
messages in thesync
process to be awaited later (non-blockingasync
handling of sequential processes) - ✅ - Sync as a daemon or on a schedule
- ✅ - Support for migrations, factory contracts and recovery scripts
- ✅ - Support for cron based scheduling
- ✅ - Easy to deploy anywhere with minimal configuration
- ✅ - Efficient
graphql
->mongo
querying for cheap data storage and retrieval - ✅ - Immutable storage option to snapshot state at any block (immutable by default)
- 🏗️ - Code / type generators and subgraph migration guides
- 🏗️ - Postgres / other database adapters and resolvers
- 🏗️ - Dashboard ui with sync monitoring and admin controls
- 🏗️ - Chain reconciles and reorganisations handling
Installation
To install supagraph
, go to an empty folder, initialise a pnpm project (i.e. pnpm init
), and run:
$ pnpm add supagraph
Documentation
Supagraph
has been broken into two core stand alone pieces, sync
and graphql
, you might want to run either or both in order to index and/or query your data.
Tech Stack
We are depending on:
graphql-yoga
andgraphql
to create a GraphQL endpointethers
to mapEvents
to storedEntities
mongodb
/node-persist
as a persistence layertypescript
,eslint
, andprettier
to maintain coding standardsttsc
andtypescript-transform-paths
for comp
Breaking changes
We are working towards a v0.0.1, please expect non-semvar breaking changes until we reach a stable design. We will do our best to outline any changes which alter interfaces here:
v0.0.1-rc.64
- renamedSync
seventAbi
property toevents
for consistency withconfig
/handler
hookups
Contributing
If you would like to contribute to supagraph
, please follow these steps:
- Fork this repository.
- Create a new branch for your changes.
- Make your changes and test them thoroughly.
- Create a pull request and describe your changes.
Support
Support can be found on our Discord channel #supagraph