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

# primitives/RelayData

> Auto-generated API documentation

[**@tevm/voltaire**](../index.mdx)

***

[@tevm/voltaire](../index.mdx) / primitives/RelayData

# primitives/RelayData

## Classes

### InvalidRelayDataError

Defined in: [src/primitives/RelayData/errors.js:6](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/errors.js#L6)

Error thrown when RelayData operations fail

#### Extends

* `Error`

#### Constructors

##### Constructor

> **new InvalidRelayDataError**(`message`, `details`): [`InvalidRelayDataError`](#invalidrelaydataerror)

Defined in: [src/primitives/RelayData/errors.js:7](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/errors.js#L7)

###### Parameters

###### message

`any`

###### details

`any`

###### Returns

[`InvalidRelayDataError`](#invalidrelaydataerror)

###### Overrides

`Error.constructor`

#### Properties

##### details

> **details**: `any`

Defined in: [src/primitives/RelayData/errors.js:10](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/errors.js#L10)

##### name

> **name**: `string`

Defined in: [src/primitives/RelayData/errors.js:9](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/errors.js#L9)

###### Inherited from

`Error.name`

## Type Aliases

### RelayDataLike

> **RelayDataLike** = [`RelayDataType`](#relaydatatype) | \{ `builderPubkey?`: `Uint8Array` | `string`; `parentHash`: [`HashType`](../index/namespaces/HashType.mdx#hashtype) | `string` | `Uint8Array`; `proposerFeeRecipient`: [`AddressType`](Address.mdx#addresstype) | `string`; `relayPubkey`: `Uint8Array` | `string`; `relayUrl`: `string`; `slot`: [`SlotType`](Slot.mdx#slottype) | `bigint` | `number` | `string`; }

Defined in: [src/primitives/RelayData/RelayDataType.ts:58](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/RelayDataType.ts#L58)

Inputs that can be converted to RelayData

***

### RelayDataType

> **RelayDataType** = `object`

Defined in: [src/primitives/RelayData/RelayDataType.ts:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/RelayDataType.ts#L17)

RelayData type

Represents MEV relay connection information for Proposer-Builder Separation (PBS).
Relays act as trusted intermediaries between block builders and validators,
ensuring builders cannot see validator signatures before block delivery.

#### See

* [https://voltaire.tevm.sh/primitives/relay-data](https://voltaire.tevm.sh/primitives/relay-data) for RelayData documentation
* [https://boost.flashbots.net/](https://boost.flashbots.net/) for MEV-Boost
* [https://ethereum.org/en/roadmap/pbs/](https://ethereum.org/en/roadmap/pbs/) for PBS overview

#### Since

0.0.0

#### Properties

##### builderPubkey?

> `readonly` `optional` **builderPubkey**: `Uint8Array`

Defined in: [src/primitives/RelayData/RelayDataType.ts:34](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/RelayDataType.ts#L34)

Builder's BLS public key (48 bytes, optional)
If known, used to verify builder identity

##### parentHash

> `readonly` **parentHash**: [`HashType`](../index/namespaces/HashType.mdx#hashtype)

Defined in: [src/primitives/RelayData/RelayDataType.ts:46](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/RelayDataType.ts#L46)

Parent block hash (32 bytes)
The block being built on top of

##### proposerFeeRecipient

> `readonly` **proposerFeeRecipient**: [`AddressType`](Address.mdx#addresstype)

Defined in: [src/primitives/RelayData/RelayDataType.ts:52](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/RelayDataType.ts#L52)

Validator fee recipient address (20 bytes)
Where block rewards should be sent

##### relayPubkey

> `readonly` **relayPubkey**: `Uint8Array`

Defined in: [src/primitives/RelayData/RelayDataType.ts:28](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/RelayDataType.ts#L28)

Relay's BLS public key (48 bytes)
Used to verify relay signatures and attestations

##### relayUrl

> `readonly` **relayUrl**: `string`

Defined in: [src/primitives/RelayData/RelayDataType.ts:22](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/RelayDataType.ts#L22)

MEV relay endpoint URL
Base URL for relay API (e.g., "[https://relay.flashbots.net](https://relay.flashbots.net)")

##### slot

> `readonly` **slot**: [`SlotType`](Slot.mdx#slottype)

Defined in: [src/primitives/RelayData/RelayDataType.ts:40](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/RelayDataType.ts#L40)

Current consensus layer slot
The slot this relay data is valid for

## Variables

### MEV\_RELAYS

> `const` **MEV\_RELAYS**: `object`

Defined in: [src/primitives/RelayData/RelayDataType.ts:72](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/RelayDataType.ts#L72)

Well-known MEV relay endpoints

#### Type Declaration

##### AGNOSTIC

> `readonly` **AGNOSTIC**: `"https://agnostic-relay.net"`

##### BLOXROUTE\_MAX\_PROFIT

> `readonly` **BLOXROUTE\_MAX\_PROFIT**: `"https://bloxroute.max-profit.bloxroute.com"`

##### BLOXROUTE\_REGULATED

> `readonly` **BLOXROUTE\_REGULATED**: `"https://bloxroute.regulated.bloxroute.com"`

##### EDEN

> `readonly` **EDEN**: `"https://relay.edennetwork.io"`

##### FLASHBOTS

> `readonly` **FLASHBOTS**: `"https://relay.flashbots.net"`

##### MANIFOLD

> `readonly` **MANIFOLD**: `"https://mainnet-relay.securerpc.com"`

##### ULTRASOUND

> `readonly` **ULTRASOUND**: `"https://relay.ultrasound.money"`

## Functions

### from()

> **from**(`value`): [`RelayDataType`](#relaydatatype)

Defined in: [src/primitives/RelayData/from.js:68](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/from.js#L68)

Creates RelayData from various input types

#### Parameters

##### value

[`RelayDataLike`](#relaydatalike)

RelayData input

#### Returns

[`RelayDataType`](#relaydatatype)

RelayData instance

#### Throws

If format is invalid

#### Example

```typescript theme={null}
import * as RelayData from './RelayData/index.js';
const relay = RelayData.from({
  relayUrl: "https://relay.flashbots.net",
  relayPubkey: relayKey,
  slot: 123456n,
  parentHash: parentHash,
  proposerFeeRecipient: feeRecipient,
});
```

***

### getEndpoint()

> **getEndpoint**(`relay`, `method`): `string`

Defined in: [src/primitives/RelayData/getEndpoint.js:20](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/RelayData/getEndpoint.js#L20)

Constructs API endpoint for a specific relay method

#### Parameters

##### relay

[`RelayDataType`](#relaydatatype)

RelayData instance

##### method

`string`

API method path (e.g., "/eth/v1/builder/header")

#### Returns

`string`

Full endpoint URL

#### Example

```typescript theme={null}
import * as RelayData from './RelayData/index.js';
const url = RelayData.getEndpoint(relay, "/eth/v1/builder/header");
console.log(url); // "https://relay.flashbots.net/eth/v1/builder/header"
```
