> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pulsy.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Create, Test, and Deploy a Feed

> Build a feed, test it against a block, and deploy it.

# Create, Test, and Deploy a Feed

A feed listens to the blockchain data you define, decides what matters, and emits a structured payload when the feed logic matches. In the dashboard, you can create a feed with the AI assistant or configure each part manually.

## Use the AI Assistant

Give the AI assistant the feed name, source, stream behavior, filter logic, outputs, and test block, and it will create the feed.

Example prompt:

```text theme={null}
Create a feed named "Large Transfer Monitor".
Use Ethereum Mainnet with the "Block With Logs" dataset.
Run continuously from the latest block with no block delay.
Filter for ERC-20 Transfer events above 100,000 tokens.
Attach the "New Output" webhook output.
Test it on block 19876543.
```

<img src="https://mintcdn.com/pulsy/w0l62lOHNa_Gxb2r/images/atria/dashboard/ai-create-feed.png?fit=max&auto=format&n=w0l62lOHNa_Gxb2r&q=85&s=faf4fc54d4d587594b1baa83e837b4dc" alt="AI assistant creating a feed" width="2876" height="1760" data-path="images/atria/dashboard/ai-create-feed.png" />

After the AI assistant creates the feed, review the settings, filter, output, and test result before connecting it to your systems.

<img src="https://mintcdn.com/pulsy/w0l62lOHNa_Gxb2r/images/atria/dashboard/ai-feed-workspace.png?fit=max&auto=format&n=w0l62lOHNa_Gxb2r&q=85&s=c309e37fbfc598d000d24adce11bb5ba" alt="AI-created feed in the feed workspace" width="2878" height="1762" data-path="images/atria/dashboard/ai-feed-workspace.png" />

## Create a Feed Manually

Use the manual flow when you want to configure each part yourself.

### Create a Feed

1. Go to **Feeds**.
2. Select **Add Feed**.

<img src="https://mintcdn.com/pulsy/w0l62lOHNa_Gxb2r/images/atria/dashboard/feeds-add-feed.png?fit=max&auto=format&n=w0l62lOHNa_Gxb2r&q=85&s=056fc746363cbbf3ced69b0896006ed7" alt="Feeds page with Add Feed highlighted" width="2874" height="1764" data-path="images/atria/dashboard/feeds-add-feed.png" />

The dashboard opens a mode selection screen. Select **Advanced Mode** to create the feed manually.

<img src="https://mintcdn.com/pulsy/w0l62lOHNa_Gxb2r/images/atria/dashboard/feed-mode-advanced.png?fit=max&auto=format&n=w0l62lOHNa_Gxb2r&q=85&s=4df32fe8c5d40ca49d53a9efa7c69280" alt="Feed mode selection with Advanced Mode highlighted" width="2868" height="1762" data-path="images/atria/dashboard/feed-mode-advanced.png" />

After you select **Advanced Mode**, the dashboard opens a new feed workspace with the **Settings** tab selected.

### Configure Settings

In **Settings**, review the **Basics** section:

1. Keep the generated **Feed Name** or enter your own.
2. Set **Version** using semantic versioning, such as `1.0.0`.
3. Add an optional **Description**.
4. Add tags to organize the feed in the way your team works, for example by use case, chain, protocol, or owner.

<img src="https://mintcdn.com/pulsy/w0l62lOHNa_Gxb2r/images/atria/dashboard/feed-settings.png?fit=max&auto=format&n=w0l62lOHNa_Gxb2r&q=85&s=f62b5601a74d5a048ba21e2f4e88716f" alt="Feed Settings tab with feed name, version, description, and tags" width="2872" height="1762" data-path="images/atria/dashboard/feed-settings.png" />

### Choose the Source

In **Configuration**, select the pencil icon on **Source**.

1. Choose a **Network**.
2. Choose an **Environment**.
3. Choose a **Dataset**.
4. Select **Done**.

<img src="https://mintcdn.com/pulsy/w0l62lOHNa_Gxb2r/images/atria/dashboard/feed-source-dialog.png?fit=max&auto=format&n=w0l62lOHNa_Gxb2r&q=85&s=968c873b63129aee13c1b8aca6865893" alt="Source dialog with network, environment, and dataset fields" width="2874" height="1756" data-path="images/atria/dashboard/feed-source-dialog.png" />

### Configure the Stream

Select the pencil icon on **Stream**.

1. Choose whether the feed should start from the **Latest block** or a **Specific block**.
2. Choose whether the feed should **Run continuously** or stop at a **Specific block**.
3. Choose **Realtime** for no block delay, or **Custom** to wait for a number of confirmations.
4. Select **Done**.

Use custom block ranges when you want the feed to process a defined section of chain history instead of running only from the latest block onward.

<img src="https://mintcdn.com/pulsy/w0l62lOHNa_Gxb2r/images/atria/dashboard/feed-stream-dialog.png?fit=max&auto=format&n=w0l62lOHNa_Gxb2r&q=85&s=7caf39c43846bbd177507581df7ac2a6" alt="Stream dialog with block range and block delay options" width="2874" height="1764" data-path="images/atria/dashboard/feed-stream-dialog.png" />

### Set Error Handling

In **Error Handling**, choose the strategy for runtime errors. The default flow is to continue on error when possible so one bad event does not stop the whole feed.

<img src="https://mintcdn.com/pulsy/w0l62lOHNa_Gxb2r/images/atria/dashboard/feed-error-handling.png?fit=max&auto=format&n=w0l62lOHNa_Gxb2r&q=85&s=55e9c6bdc11b359cd2afa871422742c2" alt="Error Handling selector" width="2878" height="1764" data-path="images/atria/dashboard/feed-error-handling.png" />

### Add Filter Logic

Select **Filter** in the workspace navigation. The dashboard opens a code editor and inserts a starter template based on the selected dataset.

The filter must define `main(stream)`. Return:

* A JSON-safe object when the feed should emit a result.
* `null` when the feed should skip the current block or event.

You can also upload a `.js` or `.ts` file from the upload button in the editor header.

<img src="https://mintcdn.com/pulsy/w0l62lOHNa_Gxb2r/images/atria/dashboard/feed-filter-editor.png?fit=max&auto=format&n=w0l62lOHNa_Gxb2r&q=85&s=a08a45902750deb98a695746c639b973" alt="Filter tab with the code editor" width="2876" height="1762" data-path="images/atria/dashboard/feed-filter-editor.png" />

### Attach Outputs

Select **Output** in the workspace navigation.

1. Use **Add Output** to select one or more existing outputs.
2. Select an output badge to review its read-only configuration.
3. Remove an output with the close icon if it should not receive feed results.

If you only want to test logic first, you can leave outputs empty and attach them later.

<img src="https://mintcdn.com/pulsy/w0l62lOHNa_Gxb2r/images/atria/dashboard/feed-output-tab.png?fit=max&auto=format&n=w0l62lOHNa_Gxb2r&q=85&s=5fcf17849226d9dd567ec6f66410666b" alt="Output tab with a selected output" width="2878" height="1772" data-path="images/atria/dashboard/feed-output-tab.png" />

### Test the Feed

Open **Test Console** at the bottom of the workspace.

1. Enter a **Block Number**, or use the refresh icon to load the latest block for the selected environment.
2. Enable **Execute Outputs** only when you want the test run to call attached outputs.
3. Select **Test Feed**.
4. Review the console output.

If the filter and optional function return no errors, the console shows **Passed** and the primary action changes from **Test Feed** to **Deploy**.

<img src="https://mintcdn.com/pulsy/w0l62lOHNa_Gxb2r/images/atria/dashboard/feed-test-console.png?fit=max&auto=format&n=w0l62lOHNa_Gxb2r&q=85&s=01611606d9802b670b7fee15a80d693c" alt="Test Console with a passed feed test" width="2880" height="1762" data-path="images/atria/dashboard/feed-test-console.png" />

### Deploy and Start

Select **Deploy**.

For a new feed, the dashboard creates the feed and then starts it. For an existing feed, the dashboard updates the feed and then starts it.

<img src="https://mintcdn.com/pulsy/w0l62lOHNa_Gxb2r/images/atria/dashboard/feed-deployed-success.png?fit=max&auto=format&n=w0l62lOHNa_Gxb2r&q=85&s=6fd4fe4d43cf889bf606226c46cfa0cf" alt="Deployed feed workspace after the success notification" width="2874" height="1758" data-path="images/atria/dashboard/feed-deployed-success.png" />

### Review Live Results

For an existing deployed feed, open **Live Preview** to watch real-time results. Results appear with block number, timestamp, size, and JSON data.

<img src="https://mintcdn.com/pulsy/w0l62lOHNa_Gxb2r/images/atria/dashboard/feed-live-preview.png?fit=max&auto=format&n=w0l62lOHNa_Gxb2r&q=85&s=0632cc42e84eac5d0e672a2c82ae77ee" alt="Live Preview with a selected result" width="2880" height="1766" data-path="images/atria/dashboard/feed-live-preview.png" />

### Review Deploy History

For an existing feed, open **Deploy History** to review deployment status, version, creation time, and update time.

<img src="https://mintcdn.com/pulsy/w0l62lOHNa_Gxb2r/images/atria/dashboard/feed-deploy-history.png?fit=max&auto=format&n=w0l62lOHNa_Gxb2r&q=85&s=04b7f139a03d4c7a4bdc6a2cb3e3a776" alt="Deploy History tab" width="2876" height="1766" data-path="images/atria/dashboard/feed-deploy-history.png" />
