# Register (Data Streams) v0.3.1 API Reference
Source: https://docs.chain.link/chainlink-local/api-reference/v0.3.1/data-streams-register

> For the complete documentation index, see [llms.txt](/llms.txt).

> **NOTE: Integrate Chainlink Local into your project**
>
> ### npm
>
> If you use [NPM](https://www.npmjs.com/), install the [@chainlink/local NPM
> package](https://www.npmjs.com/package/@chainlink/local):
>
> ```shell
> npm install @chainlink/local@0.3.1
> ```
>
> ### yarn
>
> If you use [Yarn](https://yarnpkg.com/), install the [@chainlink/local NPM
> package](https://www.npmjs.com/package/@chainlink/local):
>
> ```shell
> yarn add @chainlink/local@0.3.1
> ```
>
> ### foundry
>
> If you use [Foundry](https://book.getfoundry.sh/):
>
> ```shell
> forge install smartcontractkit/chainlink-local@v0.3.1
> ```
>
> and then set remappings to: `@chainlink/local/=lib/chainlink-local/` in either `remappings.txt` or `foundry.toml` file
>
> ### RemixIDE
>
> Import the `CCIPLocalSimulator` contract from the `@chainlink/local` package:
>
> ```solidity
> import {CCIPLocalSimulator} from "@chainlink/local@0.3.1/src/ccip/CCIPLocalSimulator.sol";
> ```

## Register (Data Streams)

A contract that stores and retrieves Data Streams network details for various chains.

[`Register`](https://github.com/smartcontractkit/chainlink-local/blob/v0.3.1/src/data-streams/Register.sol)

> **NOTE**
>
> This contract is separate from the CCIP [`Register`](/chainlink-local/api-reference/v0.3.1/register): it stores the
> Data Streams verifier proxy and LINK addresses per chain. Used by
> [`DataStreamsLocalSimulatorFork`](/chainlink-local/api-reference/v0.3.1/data-streams-local-simulator-fork).

## Structs

### NetworkDetails

Contains Data Streams configuration details for a specific network/chain.

| Field                | Type      | Description                                |
| -------------------- | --------- | ------------------------------------------ |
| verifierProxyAddress | `address` | The address of the Verifier Proxy contract |
| linkAddress          | `address` | The address of the LINK token contract     |

## Functions

### constructor

Initializes the contract with predefined network details.

```solidity
constructor()
```

> **NOTE**
>
> Built-in details cover Arbitrum Sepolia, Avalanche Fuji, Base Sepolia, opBNB Testnet and Soneium Minato Testnet.

### getNetworkDetails

Retrieves network details for a given chain ID.

```solidity
function getNetworkDetails(uint256 chainId) external view returns (NetworkDetails memory networkDetails)
```

#### Parameters

| Parameter | Type      | Description                                |
| --------- | --------- | ------------------------------------------ |
| chainId   | `uint256` | The ID of the chain to get the details for |

#### Returns

| Parameter      | Type             | Description                                    |
| -------------- | ---------------- | ---------------------------------------------- |
| networkDetails | `NetworkDetails` | The network details for the specified chain ID |

### setNetworkDetails

Sets the network details for a given chain ID.

```solidity
function setNetworkDetails(uint256 chainId, NetworkDetails memory networkDetails) external
```

> **NOTE**
>
> Used to add or update network details when they are not present or have changed from default values.

#### Parameters

| Parameter      | Type             | Description                                           |
| -------------- | ---------------- | ----------------------------------------------------- |
| chainId        | `uint256`        | The ID of the chain to set the details for            |
| networkDetails | `NetworkDetails` | The network details to set for the specified chain ID |