You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -31,11 +31,11 @@ import DataStreams from "@features/data-streams/common/DataStreams.astro"
31
31
Please do your own research and audit the code before using this tool in a production environment.
32
32
</Aside>
33
33
34
-
While [Chainlink Data Streams](/data-streams/index) provide access to low-latency market data off-chain, the process of bringing this data on-chain requires significant engineering. Developers must build, deploy, and maintain a custom infrastructure service that can reliably connect to the Data Streams API, implement robust WebSocket reconnection logic, and manage the on-chain transaction logic for when and how to push updates.
34
+
While [Chainlink Data Streams](/data-streams/index) provide access to low-latency market data offchain, the process of bringing this data onchain requires significant engineering. Developers must build, deploy, and maintain a custom infrastructure service that can reliably connect to the Data Streams API, implement robust WebSocket reconnection logic, and manage the onchain transaction logic for when and how to push updates.
35
35
36
-
The [Data Streams Transmitter][GITHUB_REPO], a community-led solution, provides a foundational framework for the DevOps teams and Infrastructure Managers tasked with building these systems. Transmitter is a configurable service that handles the core logic of monitoring off-chain Data Streams and pushing values to your smart contracts based on predefined conditions, such as time intervals or price deviations. It also includes a web interface to manage your feeds and monitor their status.
36
+
The [Data Streams Transmitter][GITHUB_REPO], a community-led solution, provides a foundational framework for the DevOps teams and Infrastructure Managers tasked with building these systems. Transmitter is a configurable service that handles the core logic of monitoring offchain Data Streams and pushing values to your smart contracts based on predefined conditions, such as time intervals or price deviations. It also includes a web interface to manage your feeds and monitor their status.
37
37
38
-
This guide walks you through deploying a `DataStreamsFeed` consumer contract, setting up the Data Streams Transmitter, and configuring it to monitor a specific Data Stream and relay it to your on-chain contract.
38
+
This guide walks you through deploying a `DataStreamsFeed` consumer contract, setting up the Data Streams Transmitter, and configuring it to monitor a specific Data Stream and relay it to your onchain contract.
39
39
40
40
---
41
41
@@ -47,17 +47,17 @@ This guide walks you through deploying a `DataStreamsFeed` consumer contract, se
Transmitter relays data from the off-chain Chainlink network to your on-chain contracts in the following sequence:
50
+
Transmitter relays data from the offchain Chainlink network to your onchain contracts in the following sequence:
51
51
52
-
1.**Off-chain | Data Generation:** A Chainlink Decentralized Oracle Network (DON) generates and signs low-latency data reports, making them available in the off-chain Data Streams Aggregation Network.
52
+
1.**Offchain | Data Generation:** A Chainlink Decentralized Oracle Network (DON) generates and signs low-latency data reports, making them available in the offchain Data Streams Aggregation Network.
53
53
54
-
1.**Off-chain | Monitoring:** Transmitter, which you operate, continuously monitors this off-chain network for new reports via a WebSocket connection.
54
+
1.**Offchain | Monitoring:** Transmitter, which you operate, continuously monitors this offchain network for new reports via a WebSocket connection.
55
55
56
-
1.**On-chain | Transmission:** Based on your predefined conditions (such as a time interval or price deviation), Transmitter bundles the latest report into a transaction and submits it to your designated Oracle Contract.
56
+
1.**Onchain | Transmission:** Based on your predefined conditions (such as a time interval or price deviation), Transmitter bundles the latest report into a transaction and submits it to your designated Oracle Contract.
57
57
58
-
1.**On-chain | Verification:** Within that single transaction, your Oracle Contract immediately calls the Chainlink Verifier Contract, which uses its `LINK` allowance to submit the verification request. The Verifier authenticates the report by checking the DON's cryptographic signature. If verification fails, the entire transaction reverts, ensuring no state change occurs.
58
+
1.**Onchain | Verification:** Within that single transaction, your Oracle Contract immediately calls the Chainlink Verifier Contract, which uses its `LINK` allowance to submit the verification request. The Verifier authenticates the report by checking the DON's cryptographic signature. If verification fails, the entire transaction reverts, ensuring no state change occurs.
59
59
60
-
1.**On-chain | Consumption:** Upon successful verification, the data is written to your Oracle Contract's storage. This freshly verified, low-latency data is now available on-chain for your dApp or other smart contracts to consume.
60
+
1.**Onchain | Consumption:** Upon successful verification, the data is written to your Oracle Contract's storage. This freshly verified, low-latency data is now available onchain for your dApp or other smart contracts to consume.
@@ -76,7 +76,7 @@ Before you start this tutorial, ensure you have the following prerequisites:
76
76
-**Software Dependencies**: [Foundry][FOUNDRY_INSTALL], [Docker][DOCKER_INSTALL], [Node.js][NODE_INSTALL], and [Redis][REDIS_INSTALL] installed on your deployment host. This guide uses `pnpm` for package management.
77
77
-**Development Wallet**: This guide requires a funded development wallet and its **private key** to send transactions.
78
78
-**Network Configuration**: This guide uses **Avalanche Fuji**. You can find RPC URLs on [Chainlist](https://chainlist.org).
79
-
-**Testnet Funds**: The wallet must be funded with testnet `AVAX` to pay for transaction fees on the **Avalanche Fuji** network. Testnet `LINK` must be provided to the deployed contract to pay for on-chain verification fees. Both are available from the [Chainlink Faucet](https://faucets.chain.link/).
79
+
-**Testnet Funds**: The wallet must be funded with testnet `AVAX` to pay for transaction fees on the **Avalanche Fuji** network. Testnet `LINK` must be provided to the deployed contract to pay for onchain verification fees. Both are available from the [Chainlink Faucet](https://faucets.chain.link/).
80
80
-**API Credentials**: Access to Data Streams requires API credentials. If you haven't already, [contact us][DATA_STREAMS_CONTACT] to request Data Streams access.
81
81
-**Web3 Foundation**: A basic understanding of [smart contracts and blockchain development](/quickstarts/deploy-your-first-contract).
82
82
@@ -165,7 +165,7 @@ First, deploy a [`DataStreamsFeed.sol` contract](https://github.com/woogieboogie
165
165
</Accordion>
166
166
167
167
<Accordion title="Set Up Transmitter" number={2}>
168
-
With a consumer contract on-chain, you can now set up the Transmitter service to relay data to it.
168
+
With a consumer contract onchain, you can now set up the Transmitter service to relay data to it.
169
169
170
170
1. In a new terminal window, navigate to your development space and clone the [Data Stream Transmitter repository][GITHUB_REPO]:
171
171
@@ -204,7 +204,7 @@ With a consumer contract on-chain, you can now set up the Transmitter service to
204
204
1. Create the runtime configuration file by copying the example:
205
205
206
206
```bash
207
-
cp config-chainlink-example.yml config.yml
207
+
cp config-chainlink-verify-example.yml config.yml
208
208
```
209
209
210
210
1. Open `config.yml` in a text editor. Update the `targetChains` section to point to the contract you deployed on **Avalanche Fuji**.
@@ -287,7 +287,7 @@ With a consumer contract on-chain, you can now set up the Transmitter service to
287
287
288
288
- Replace `0xYOUR_AVALANCHE_FUJI_CONTRACT_ADDRESS` with the address of the contract you deployed in the previous step.
289
289
- The `feedId` should match the one you set in the contract deployment.
290
-
- Each target block must keep `skipVerify: false`, `functionName: verifyAndUpdateReport`, and `functionArgs: ["rawReport", "parameterPayload"]` to ensure the Transmitter correctly prepares the transaction for on-chain verification.
290
+
- Each target block must keep `skipVerify: false`, `functionName: verifyAndUpdateReport`, and `functionArgs: ["rawReport", "parameterPayload"]` to ensure the Transmitter correctly prepares the transaction for onchain verification.
291
291
292
292
1. Start the Docker daemon.
293
293
@@ -311,7 +311,7 @@ With a consumer contract on-chain, you can now set up the Transmitter service to
311
311
312
312
## UI Overview
313
313
314
-
The Transmitter UI lets you manage your feeds, monitor their status, and define how and where data is pushed on-chain. Although we configured the basics in `config.yml`, you can manage the service from this dashboard.
314
+
The Transmitter UI lets you manage your feeds, monitor their status, and define how and where data is pushed onchain. Although we configured the basics in `config.yml`, you can manage the service from this dashboard.
315
315
316
316
<ClickToZoom src="/images/quickstarts/transmitter/transmitter_home.png" alt="The Transmitter home page" />
317
317
@@ -321,21 +321,21 @@ The optional sections below provide a detailed overview of the Transmitter UI, e
321
321
322
322
On the upper-right corner of the page you will find the **Chain** section. Since the default chain is configured to `Avalanche Fuji`, you should see that network listed along with details for your wallet.
| **Current Chain** | The current chain, which is where data will be pushed. |
327
+
| **Chain ID** | The unique numeric identifier for the current chain. |
328
+
| **Wallet Address** | Your unique wallet address. |
329
+
| **Native Token Balance** | Your native token balance, which is used to pay for onchain transaction fees (gas). |
330
+
| **LINK Balance** | Your `LINK` token balance, used to pay for Chainlink Data Streams transactions. |
331
331
332
332
Your balance should reflect the amount of testnet LINK and AVAX you have in your wallet. If you need more, you can use the [Chainlink Faucet](https://faucets.chain.link/).
333
333
334
334
</Accordion>
335
335
336
336
<Accordion title="Logs">
337
337
338
-
On the top-right corner of the page, you will find the **Logs** section, which contains details for all Transmitter actions. When operating correctly, the log should reflect a clear, step-by-step process for each on-chain update.
338
+
On the top-right corner of the page, you will find the **Logs** section, which contains details for all Transmitter actions. When operating correctly, the log should reflect a clear, step-by-step process for each onchain update.
339
339
340
340
Example log output:
341
341
@@ -365,7 +365,7 @@ The **Data Streams** section lists all Data Streams, their status, and any relat
365
365
| **Stream** | The name of the stream. This is the name set by the user for easier tracking and feed identification. |
366
366
| **Feed ID** | The feed ID. Check [Chainlink Data Streams Documentation](/data-streams/crypto-streams) for a list of supported streams. |
367
367
| **Contract** | Target contract for the feed on the current chain. Click to open a configuration page where you can define the target contract, functions, and ABI. |
368
-
| **Saved price** | The latest price recorded on-chain. |
368
+
| **Saved price** | The latest price recorded onchain. |
369
369
| **Last reported** | The latest price reported by the stream. |
370
370
| **Status** | Current status of the stream. Possible states include: `Running`, `Connecting`, `Stopping` or `Stopped`. |
371
371
| **Remove** | Click to remove the stream. |
@@ -374,19 +374,19 @@ The **Data Streams** section lists all Data Streams, their status, and any relat
374
374
375
375
<Accordion title="Schedule" >
376
376
377
-
The **Schedule** section allows you to define how often the Transmitter should push data on-chain, using a cron expression. We have already defined this in the `config.yml` file, but you can change it here.
377
+
The **Schedule** section allows you to define how often the Transmitter should push data onchain, using a cron expression. We have already defined this in the `config.yml` file, but you can change it here.
378
378
379
379
</Accordion>
380
380
381
381
<Accordion title="Verifier Contracts" >
382
382
383
-
The **Verifier Contracts** section lets you specify contracts that will verify the data being pushed on-chain. The verifier contract for your current network will be automatically selected based on `config.yml`.
383
+
The **Verifier Contracts** section lets you specify contracts that will verify the data being pushed onchain. The verifier contract for your current network will be automatically selected based on `config.yml`.
384
384
385
385
</Accordion>
386
386
387
387
<Accordion title="Price Delta" >
388
388
389
-
The **Price Delta** section lets you define the price change threshold that will trigger an on-chain update. We set this in the `config.yml` file, but you can change this value here.
389
+
The **Price Delta** section lets you define the price change threshold that will trigger an onchain update. We set this in the `config.yml` file, but you can change this value here.
390
390
391
391
</Accordion>
392
392
@@ -414,12 +414,12 @@ If you run into issues during setup or operation, refer to these common problems
414
414
- **Data is not updating on your contract**
415
415
- Review the logs in Transmitter for specific error messages related to the feed or contract interaction.
416
416
- **Authentication:** Verify that your `DATASTREAMS_CLIENT_ID` and `DATASTREAMS_CLIENT_SECRET` are correct and do not have extra spaces or characters.
417
-
- **LINK Balance:** Ensure the contract holds sufficient `LINK` balance to pay for on-chain verification fees. Top up the contract if needed -- testnet `LINK` can be found at the [Chainlink Faucet](https://faucets.chain.link/).
417
+
- **LINK Balance:** Ensure the contract holds sufficient `LINK` balance to pay for onchain verification fees. Top up the contract if needed -- testnet `LINK` can be found at the [Chainlink Faucet](https://faucets.chain.link/).
418
418
- **RPC Endpoint:** Confirm the RPC URL in your `config.yml` is correct and the node is reachable.
419
419
420
420
---
421
421
422
-
### Contract Deployment & On-Chain Errors
422
+
### Contract Deployment & Onchain Errors
423
423
424
424
- **`Gas estimation too high` error**
425
425
@@ -436,7 +436,7 @@ If you run into issues during setup or operation, refer to these common problems
436
436
437
437
Congratulations! 🎉 You have successfully deployed a `DataStreamsFeed` contract, set up the Data Streams Transmitter, and linked them together.
438
438
439
-
You can now monitor off-chain Data Streams and push updates to your smart contracts without writing any code or managing your own backend infrastructure. The Transmitter handles all the complexity of connecting to Data Streams, monitoring data changes, and pushing updates on-chain.
439
+
You can now monitor offchain Data Streams and push updates to your smart contracts without writing any code or managing your own backend infrastructure. The Transmitter handles all the complexity of connecting to Data Streams, monitoring data changes, and pushing updates onchain.
440
440
441
441
For more advanced usage, troubleshooting, or to contribute, visit the [GitHub repository][GITHUB_REPO] or check out the [official Data Streams documentation](/data-streams/index).
0 commit comments