> ## Documentation Index
> Fetch the complete documentation index at: https://launchdarkly-preview.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Experimentation prerequisites

> This topic explains the prerequisites required to use LaunchDarkly Experimentation.

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

## Overview

This topic explains the prerequisites required to use LaunchDarkly Experimentation. Before you begin, your SDKs must meet the minimum version requirements and be configured to send events, and you must have the required permissions in LaunchDarkly. If you use the Relay Proxy, it must also meet the minimum version requirements and be configured to send events.

These prerequisites are explained in detail below.

## SDK requirements

Your SDKs must meet the following requirements.

### SDK version number

You must be using the listed version number or higher for the following SDKs:

<Accordion title="Click to expand a table listing required client-side SDK versions">
  Client-side SDKs:

  \| SDK

  | Version |
  | - |

  \| --- |
  \| .NET (client-side)

  \| 2.0.0 |
  \| Android

  \| 3.1.0 |
  \| C++ (client-side)

  \| 2.4.8 |
  \| Electron

  \| All versions |
  \| Flutter

  \| 0.2.0 |
  \| iOS

  \| All versions |
  \| JavaScript

  \| 2.6.0 |
  \| Node.js (client-side)

  \| All versions |
  \| React Native

  \| 5.0.0 |
  \| React Web

  \| All versions |
  \| Roku

  \| All versions |
  \| Vue

  \| All versions |
</Accordion>

<Accordion title="Click to expand a table listing required server-side SDK versions">
  Server-side SDKs:

  \| SDK

  | Version |
  | - |

  \| --- |
  \| .NET (server-side)

  \| 6.1.0 |
  \| Apex

  \| 1.1.0 |
  \| C/C++ (server-side)

  \| 2.4.0 |
  \| Erlang

  \| 1.2.0 |
  \| Go

  \| 5.4.0 |
  \| Haskell

  \| 2.2.0 |
  \| Java

  \| 5.5.0 |
  \| Lua

  \| 1.0 |
  \| Node.js (server-side)

  \| 6.1.0 |
  \| PHP

  \| 4.1.0 |
  \| Python

  \| 7.2.0 |
  \| Ruby

  \| 6.2.0 |
  \| Rust

  \| 1.0.0-beta.1 |
</Accordion>

<Accordion title="Click to expand a table listing required AI SDK versions">
  AI SDKs:

  \| SDK

  | Version |
  | - |

  \| --- |
  \| .NET AI SDK

  \| 0.1 |
  \| Go AI SDK

  \| 0.1 |
  \| Node.js (server-side) AI SDK

  \| 0.1 |
  \| Python AI SDK

  \| 0.1 |
  \| Ruby AI SDK

  \| 0.1 |
</Accordion>

<Accordion title="Click to expand a table listing required edge SDK versions">
  Edge SDKs:

  \| SDK

  | Version |
  | - |

  \| --- |
  \| Cloudflare

  \| 2.3.0 |
  \| Vercel

  \| 1.2.0 |
</Accordion>

If you use [holdouts](/home/holdouts) and are using a client-side SDK, your minimum SDK versions may differ from those listed above. To find the minimum required version for holdouts, read [Supported features](/sdk#supported-features).

### SDK configuration

You must configure your SDKs to do the following:

* Send events to LaunchDarkly: If you have disabled sending events for testing purposes, you must re-enable it.
  * For client-side, server-side, and edge SDKs, the [all flags](/sdk/features/all-flags) feature sends events for some SDKs, but not others. For SDKs that do not send events with the all flags feature, you must call the [variation](/sdk/features/evaluating) method instead. If you call the variation method, you must use the right variation type.

- For AI SDKs, the [AI metrics](/sdk/features/ai-metrics) feature sends events. To learn more about the events SDKs send to LaunchDarkly, read [Analytics events](/sdk/concepts/events).

## Relay Proxy

If you use the [LaunchDarkly Relay Proxy](/sdk/relay-proxy), it must be at least version 8, and you must configure it to [send events](https://github.com/launchdarkly/ld-relay/blob/v8/docs/events.md).

If you use [holdouts](/home/holdouts) and are using a client-side SDK, the minimum required version of Relay Proxy is 8.

10. To learn more, read [Configuring an SDK to use the Relay Proxy](/sdk/relay-proxy/sdk-config#configuring-an-sdk-to-use-the-relay-proxy).

## Role permissions

To start, stop, and edit experiments, you must have an Admin, Owner, or Writer [base role](/home/account/roles/role-concepts#base-roles), or a custom role with the following permissions for the specific environments you plan to run experiments in.[Experiment actions](/home/account/roles/role-actions#experiment-actions) include:

* `createExperiment`

* `updateExperiment`

* `updateExperimentArchived`[Feature flag actions](/home/account/roles/role-actions#feature-flag-actions) include:

* `createFlag`

* `updateOn`

* `updateFallthrough`

* `updateRules`[Holdout actions](/home/account/roles/role-actions#holdout-actions) include:

* `addExperimentToHoldout`

* `createHoldout`

* `removeExperimentFromHoldout`

* `updateHoldoutDescription`

* `updateHoldoutMethodology`

* `updateHoldoutName`

* `updateHoldoutStatus`

* `updateHoldoutRandomizationUnit`To learn more, read [Member role concepts](/home/account/roles/role-concepts).
