---
# System prepended metadata

title: Integrations task

---

# Integrations task
The Avail Integrations position requires the ability to think about different systems connected together. And designing, creating, writing applications and scripts that connect different systems with various assumptions together. As well as supporting existing integrations. 

The first part of the task requires running an Avail network. For that, we would recommend getting acquainted with Avail documentation and different repositories. 

- [Avail node](https://github.com/maticnetwork/avail)
- [All Avail repos](https://github.com/maticnetwork/data-availability)
- [Avail documentation](https://wiki.polygon.technology/docs/avail/introduction/what-is-avail/)

## Things to implement
1. Run a network with two validators. You can do this locally. For that, you can use a devnet chainspec that is part of the [Avail repository](https://github.com/maticnetwork/avail/tree/main/misc/genesis). To run with two validators, Alice and Bob, you can start with: 

```
./target/release/data-avail --base-path /tmp/alice --chain misc/genesis/devnet.chain.spec.json --alice --port 30333 --ws-port 9945 --rpc-port 9933 --node-key 0000000000000000000000000000000000000000000000000000000000000001 --validator

./target/release/data-avail --base-path /tmp/bob --chain misc/genesis/devnet.chain.spec.json --bob --port 30334 --ws-port 9946 --rpc-port 9934  --validator --bootnodes /ip4/127.0.0.1/tcp/30333/p2p/12D3KooWEyoppNCUx8Yx66oV9fJnriXwCcXwDDUA2kj6vnc6iDEp
```
2. Create an app that subscribes to finalized blocks from the two validators. You can find existing scripts doing this here for reference. One implementation in .rs and another in .ts. The app can just run two instances of the script. Feel free to change them up or create your own implementation as needed.
    - https://github.com/maticnetwork/avail/blob/3721b710ef1ca2b8ab59017d377956aeafd7875c/avail-subxt/examples/da_bridge_actor.rs#L31-L34
    - https://github.com/maticnetwork/avail/blob/e332dc876bc8f790ff06ad29e34e391907641a9c/tests/js_api/src/sub.ts#L57.
3. Use the scripts to push blocks to a local server/app/db/…. This can be any DB implementation you want. The simpler the solution, the better. 
4. Bonus: Implement points #2 and #3 as a single script or application.
5. Once the server has the same header from both Alice and Bob, push that header onto a local ganache node hosted smart contract.

Please document the final solution and upload the scripts e.g., to a private github repo. We will then go through the solution in the next call. If you run into any issues e.g., on point #1, feel free to reach out. Or focus on creating logic that just pushes data into a smart contract.