README.md
# Slurp
[![Build Status](https://github.com/fremantle-industries/slurp/workflows/test/badge.svg?branch=main)](https://github.com/fremantle-industries/slurp/actions?query=workflow%3Atest)
[![hex.pm version](https://img.shields.io/hexpm/v/slurp.svg?style=flat)](https://hex.pm/packages/slurp)
An EVM block ingestion toolkit for Elixir
[Built with Slurp](./docs/BUILT_WITH_SLURP.md) | [Install](#install) | [Usage](#usage) | [Commands](./docs/COMMANDS.md) | [Configuration](./docs/CONFIGURATION.md)
## What Can I Do? TLDR;
Stream blocks & events from multiple EVM blockchains with a near-uniform API
| Supported Blockchains |
| --------------------- |
| Ethereum |
| Binance Smart Chain |
| Matic |
| Optimism |
| Fantom |
| xDAI |
| Avalanche |
[![asciicast](https://asciinema.org/a/382198.svg)](https://asciinema.org/a/382198)
## Install
`slurp` requires Elixir 1.11+ & Erlang/OTP 22+. Add `slurp` to your list of dependencies in `mix.exs`
```elixir
def deps do
[
{:slurp, "~> 0.0.10"}
]
end
```
Create an `.iex.exs` file in the root of your project and import the `slurp` helper
```elixir
# .iex.exs
Application.put_env(:elixir, :ansi_enabled, true)
import Slurp.IEx
```
## Usage
`slurp` runs as an OTP application.
During development we can leverage `mix` to compile and run our application with an
interactive Elixir shell that imports the set of `slurp` helper [commands](./docs/COMMANDS.md).
```bash
iex -S mix
```
## Chain Details
[https://chainid.network/](https://chainid.network) maintains a list of EVM compatible blockchains including available [RPC providers](https://chainid.network/chains.json).
## Authors
- Alex Kwiatkowski - alex+git@fremantle.io
## License
`slurp` is released under the [MIT license](./LICENSE.md)