diff --git a/src/content/vrf/v2-5/overview/direct-funding.mdx b/src/content/vrf/v2-5/overview/direct-funding.mdx
index 1944707a577..327c3a8a82c 100644
--- a/src/content/vrf/v2-5/overview/direct-funding.mdx
+++ b/src/content/vrf/v2-5/overview/direct-funding.mdx
@@ -31,17 +31,21 @@ Requests to Chainlink VRF v2.5 follow the request and receive data cycle similar
-Two types of accounts exist in the Ethereum ecosystem, and both are used in VRF:
-
-- EOA (Externally Owned Account): An externally owned account that has a private key and can control a smart contract. Transactions can be initiated only by EOAs.
-- Smart contract: A smart contract that does not have a private key and executes what it has been designed for as a decentralized application.
-
The Chainlink VRF v2.5 solution uses both offchain and onchain components:
- [VRF v2.5 Wrapper (onchain component)](https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.8/vrf/dev/VRFV2PlusWrapper.sol): A wrapper for the VRF Coordinator that provides an interface for consuming contracts.
- [VRF v2.5 Coordinator (onchain component)](https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.8/vrf/dev/VRFCoordinatorV2_5.sol): A contract designed to interact with the VRF service. It emits an event when a request for randomness is made, and then verifies the random number and proof of how it was generated by the VRF service.
- VRF service (offchain component): Listens for requests by subscribing to the VRF Coordinator event logs and calculates a random number based on the block hash and nonce. The VRF service then sends a transaction to the `VRFCoordinator` including the random number and a proof of how it was generated.
+### Account types used in VRF
+
+Two types of accounts exist in the Ethereum ecosystem, and both are used in VRF:
+
+- EOA (Externally Owned Account): An externally owned account that has a private key and can control a smart contract. Transactions can be initiated only by EOAs.
+- Smart contract: A smart contract that does not have a private key and executes what it has been designed for as a decentralized application.
+
+While only EOAs can initiate transactions, do not attempt to use EOAs to send VRF requests directly. Instead, your EOA should interact with your consuming contract: the smart contract that is consuming the random values you request from VRF. Your EOA initiates the transaction, and then your consuming contract interacts with the VRF Wrapper contract, which sends the VRF request.
+
### Set up your contract and request
Set up your consuming contract:
diff --git a/src/content/vrf/v2-5/overview/subscription.mdx b/src/content/vrf/v2-5/overview/subscription.mdx
index 31b8dc41537..43b2ca5a8b4 100644
--- a/src/content/vrf/v2-5/overview/subscription.mdx
+++ b/src/content/vrf/v2-5/overview/subscription.mdx
@@ -54,18 +54,19 @@ Requests to Chainlink VRF v2.5 follow the request and receive data cycle similar
-
-
-VRF v2.5 uses both offchain and onchain components:
-
-- [VRF v2.5 Coordinator (onchain component)](https://github.com/smartcontractkit/chainlink/blob/develop/contracts/src/v0.8/vrf/dev/VRFCoordinatorV2_5.sol): A contract designed to interact with the VRF service. It emits an event when a request for randomness is made, and then verifies the random number and proof of how it was generated by the VRF service.
-- VRF service (offchain component): Listens for requests by subscribing to the VRF Coordinator event logs and calculates a random number based on the block hash and nonce. The VRF service then sends a transaction to the `VRFCoordinator` including the random number and a proof of how it was generated.
+While only EOAs can initiate transactions, do **not** attempt to use EOAs to send VRF requests directly. Instead, your EOA should interact with your consuming contract: the smart contract that is consuming the random values you request from VRF. Your EOA initiates the transaction, and then your consuming contract sends the VRF request.
### Set up your contract and request