diff --git a/README.md b/README.md
new file mode 100644
index 0000000..f21de28
--- /dev/null
+++ b/README.md
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+## About
+WeaveVM Archiver is an ETL archive pipeline for EVM networks. It's the simplest way to interface with WeaveVM's permanent data feature without smart contract redeployments.
+
+## Build & Run
+
+```bash
+git clone https://github.com/weaveVM/wvm-archiver.git
+
+cd wvm-archiver
+
+cargo shuttle run
+```
+
+### Prerequisites & Dependencies
+
+While a WeaveVM Archiver node can run without web2 component dependencies, this node implementation uses [planetscale](https://planetscale.com) for cloud indexing (indexing target network block ID to WVM archive TXID) and [shuttle.rs](https://shuttle.rs) for backend hosting. Check [.env.example](./env.example) to set up your environment variables.
+
+```js
+archiver_pk="" // WeaveVM archiver PK
+network="./networks/your_network.json"
+
+DATABASE_HOST="" // planetscale
+DATABASE_USERNAME="" // planetscale
+DATABASE_PASSWORD="" // planetscale
+```
+
+### Add Your Network
+
+To start archiving your network block data on WeaveVM:
+
+1. Add your network config file to the [networks](./networks/) directory.
+2. Name your config file using snake_case syntax (e.g., `your_network_name.json`).
+3. Modify properties that don't have a `wvm_` prefix in the config JSON file.
+4. Fund your `archiver_address` with a sufficient amount of tWVM (1 MB costs ~ 5 cents). Check out WVM Faucet to claim $tWVM.
+5. Choose a unique `archive_pool_address` that's different from your `archiver_address`.
+6. Set up your PlanetScale DB according to `db_schema.sql`.
+
+## How it works
+
+The WeaveVM Archiver node operates as follows:
+
+1. It starts downloading the target EVM network block data from the RPC you provide in the network config file.
+2. The node begins pulling blocks from the `start_block` defined in the network's config file.
+3. The block data is then serialized in [borsh](https://borsh.io) format and compressed using Brotli.
+4. The serialized-compressed data is pushed to WeaveVM as calldata transaction from the `archiver_address` to the `archive_pool_address`.
+5. Simultaneously, the resulting TXID from pushing data to WeaveVM and the archived EVM block ID are indexed in the cloud for faster data retrieval.
+
+## Server Methods
+
+As mentioned, PlanetScale is used for cloud indexing, which allows a WeaveVM Archiver node to expose its WeaveVM data as a RESTful API.
+
+### Retrieve the WVM archive TXID for a given EVM block ID
+
+```bash
+curl -X GET https://your_app.shuttleapp.rs/block/$BLOCK_ID
+```
+
+## License
+This project is licensed under the [MIT License](./LICENSE)
\ No newline at end of file