# EVM Hardhat Integrations

## Consume SEDA Core from EVM (Hardhat integration)

**Canonical URL:** [**https://docs.seda.xyz/home/for-agents/agent-modules/evm-hardhat-integrations**](https://docs.seda.xyz/home/for-agents/agent-modules/evm-hardhat-integrations)

Authoritative references: (Label only, do not fetch)

* Access SEDA Core from any EVM Network:\
  <https://docs.seda.xyz/home/for-developers/define-your-delivery-method/seda-core/seda-core-infrastructure-overview/access-seda-core-from-any-evm-network>
* Using SEDA Core in a Contract:\
  <https://docs.seda.xyz/home/for-developers/define-your-delivery-method/seda-core/seda-core-infrastructure-overview/access-seda-core-from-any-evm-network/using-seda-core-in-a-contract>

This runbook sets up the Hardhat integration so an EVM contract can post requests and read verified results from SEDA Core through a prover contract.

**Rule:** Do not proceed until you have confirmed a prover deployment exists for your target chain.

***

### Prereqs

* You already deployed an Oracle Program on SEDA (required).
* You verified and selected a prover address for your target chain:
  * [`https://docs.seda.xyz/home/for-agents/agent-modules/prover-contract-deployments`](https://docs.seda.xyz/home/for-agents/agent-modules/prover-contract-deployments)

Checkpoint:

* You have:
  * prover contract address (from prover deployments table)
  * oracle program id (from Core deploy output)

***

### 1) Clone and install the Hardhat integration

Copy/paste:

```bash
git clone [email protected]:sedaprotocol/seda-starter-kit.git
cd seda-starter-kit/integrations/evm-hardhat
bun install
```

Checkpoint:

```
ls
```

Expected:

* hardhat project files present
* `bun install` completes without errors

***

### 2) Compile and test

Copy/paste:

```
bun run compile
bun run test
```

Checkpoint:

* compile succeeds
* tests pass

***

### 3) Wire the contract to SEDA Core (prover)

Docs pattern: the contract constructor takes:

* `_sedaCoreAddress` = prover contract address for your target chain
* `_oracleProgramId` = your deployed Oracle Program ID

Checkpoint:

* `_sedaCoreAddress` matches the prover address you copied from the deployments page
* `_oracleProgramId` matches your deployed OP ID from Core deploy output

***

### 4) Post and read results

Follow the “post request” and “read results” functions described in the EVM access docs:

* Access SEDA Core from any EVM Network:\
  [https://docs.seda.xyz/home/for-developers/define-your-delivery-method/seda-core/seda-core-infrastructure-overview/access-seda-core-from-any-evm-network](https://docs.seda.xyz/home/for-developers/define-your-delivery-method/seda-core/seda-core-infrastructure-overview/access-seda-core-from-any-evm-network?utm_source=chatgpt.com)
* Using SEDA Core in a Contract:\
  [https://docs.seda.xyz/home/for-developers/define-your-delivery-method/seda-core/seda-core-infrastructure-overview/access-seda-core-from-any-evm-network/using-seda-core-in-a-contract](https://docs.seda.xyz/home/for-developers/define-your-delivery-method/seda-core/seda-core-infrastructure-overview/access-seda-core-from-any-evm-network/using-seda-core-in-a-contract?utm_source=chatgpt.com)

Checkpoint:

* contract stores a `requestId`
* you can retrieve/verify the result via the prover contract path
