Skip to content

Commit 43dd41a

Browse files
committed
clarified link is withdrawn from contract allownance, not wallet
1 parent 150eabf commit 43dd41a

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

src/content/quickstarts/transmitter.mdx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ githubSourceCodeUrl: "https://github.com/hackbg/chainlink-datastreams-transmitte
55
image: "QuickStarts-DataStreams-Transmitter.webp"
66
products: ["streams"]
77
time: "25 minutes"
8-
requires: "Foundry, Docker, Node.js, pnpm, Redis, Wallet with AVAX and LINK, Data Streams credentials."
8+
requires: "Foundry, Docker, Node.js, pnpm, Redis, Wallet with AVAX, Contract funded with LINK, Data Streams credentials."
99
---
1010

1111
import { Accordion, Address, Aside, ClickToZoom, CodeSample, CopyText } from "@components"
@@ -55,7 +55,7 @@ Transmitter relays data from the off-chain Chainlink network to your on-chain co
5555

5656
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.
5757

58-
1. **On-chain | Verification:** Within that single transaction, your Oracle Contract immediately calls the Chainlink Verifier Contract. 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. **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.
5959

6060
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.
6161

@@ -76,7 +76,7 @@ Before you start this tutorial, ensure you have the following prerequisites:
7676
- **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.
7777
- **Development Wallet**: This guide requires a funded development wallet and its **private key** to send transactions.
7878
- **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 `LINK` and `AVAX` to pay for transaction fees on the **Avalanche Fuji** network. 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 on-chain verification fees. Both are available from the [Chainlink Faucet](https://faucets.chain.link/).
8080
- **API Credentials**: Access to Data Streams requires API credentials. If you haven't already, [contact us][DATA_STREAMS_CONTACT] to request Data Streams access.
8181
- **Web3 Foundation**: A basic understanding of [smart contracts and blockchain development](/quickstarts/deploy-your-first-contract).
8282

@@ -146,6 +146,8 @@ First, deploy a `DataStreamsFeed.sol` contract. This contract receives and store
146146
- **Contract Address:** Find the contract address in your terminal output under `deployedAddress`.
147147
- **Contract ABI:** Foundry saves the ABI in `out/DataStreamsFeed.sol/DataStreamsFeed.json`.
148148
149+
Before we can use the Transmitter, we need to fund this contract with `LINK`.
150+
149151
1. Fund the contract with `LINK`.
150152
151153
After deployment, transfer some testnet `LINK` to the feed contract address, which allows the contract to pay for verification fees.
@@ -283,6 +285,7 @@ With a consumer contract on-chain, you can now set up the Transmitter service to
283285
284286
- Replace `0xYOUR_AVALANCHE_FUJI_CONTRACT_ADDRESS` with the address of the contract you deployed in the previous step.
285287
- The `feedId` should match the one you set in the contract deployment.
288+
- 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.
286289
287290
1. Start the Docker daemon.
288291
@@ -334,14 +337,14 @@ On the top-right corner of the page, you will find the **Logs** section, which c
334337
335338
Example log output:
336339
337-
```
340+
```bash
338341
[2025-07-01 16:48:44] info: 🩺 Health check endpoint running at http://localhost:8081/ready
339342
[2025-07-01 16:48:44] info: 🚀 running at http://localhost:3000
340343
[2025-07-01 16:48:44] warn: ℹ️ App already configured
341344
[2025-07-01 16:48:44] info: 🏁 Streams have been started
342345
[2025-07-01 16:50:00] info: 🚨 Price deviation detected | ETH/USD: 3450.06$ | 📉 -0.2135% (-7.36$)
343346
[2025-07-01 16:50:00] info: 📆 Scheduled for writing onchain
344-
[2025-07-01 16:50:00] info: ⛽️ Estimated fee: 0.024395523392104215 LINK
347+
[2025-07-01 16:50:00] info: ⛽️ Estimated fee: 0.024395523392104215 LINK # This fee is deducted from the contract's LINK allowance, NOT the sender's balance
345348
[2025-07-01 16:50:04] info: ✅ Report verified
346349
[2025-07-01 16:50:06] info: 📝 Prepared verification transaction
347350
[2025-07-01 16:50:07] info: ⌛️ Sending transaction 0xa59aa3e9c7a2cd020d79bd73e6c7f1aca9a576b77edb43ee35180001709fdf43
@@ -360,7 +363,7 @@ The **Data Streams** section lists all Data Streams, their status, and any relat
360363
| **Stream** | The name of the stream. This is the name set by the user for easier tracking and feed identification. |
361364
| **Feed ID** | The feed ID. Check [Chainlink Data Streams Documentation](/data-streams/crypto-streams) for a list of supported streams. |
362365
| **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. |
363-
| **Saved price** | The latest price recorded onchain. |
366+
| **Saved price** | The latest price recorded on-chain. |
364367
| **Last reported** | The latest price reported by the stream. |
365368
| **Status** | Current status of the stream. Possible states include: `Running`, `Connecting`, `Stopping` or `Stopped`. |
366369
| **Remove** | Click to remove the stream. |
@@ -409,7 +412,7 @@ If you run into issues during setup or operation, refer to these common problems
409412
- **Data is not updating on your contract**
410413
- Review the logs in Transmitter for specific error messages related to the feed or contract interaction.
411414
- **Authentication:** Verify that your `DATASTREAMS_CLIENT_ID` and `DATASTREAMS_CLIENT_SECRET` are correct and do not have extra spaces or characters.
412-
- **LINK Balance:** Ensure the transmitter's wallet has a sufficient `LINK` balance to pay for on-chain verification fees. Top up at a [faucet](https://faucets.chain.link/) if needed.
415+
- **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/).
413416
- **RPC Endpoint:** Confirm the RPC URL in your `config.yml` is correct and the node is reachable.
414417
415418
---

0 commit comments

Comments
 (0)