# Prerequisites
Source: https://docs.chain.link/crec/getting-started/prerequisites
Last Updated: 2026-08-31

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

CRE Connect is a permissioned service. Before you can use the SDK or call the API, your organization must exist on the [Chainlink Platform](https://app.chain.link) and be provisioned by Chainlink Labs for CRE Connect. Steps 1–3 cover the account and API key; steps 4–6 cover the local toolchain and integration choices.

## 1. Create your organization

Go to [app.chain.link](https://app.chain.link) and [create an account](/chainlink-platform/creating-an-account?parent=crec) or sign in.

Once signed in, navigate to your account icon on the top-right corner, then click **"Org settings"** in the dropdown to open the Organization page.

![Image](/images/ace/account-setup/navbar-organization.png)

Your **Organization ID** is displayed in the page header — copy it.

![Image](/images/ace/account-setup/organization-id.png)

## 2. Share your Organization ID

Share your Organization ID with your Chainlink Labs contact so they can enable CRE Connect for your organization. **You cannot create API keys or use CRE Connect until this step is complete.**

## 3. Create an API key

> **CAUTION: Wait for CRE Connect enablement**
>
> Do not create an API key until your Chainlink Labs contact confirms CRE Connect has been enabled for your
> organization. API keys created before enablement will not have access to CRE Connect endpoints.

Once your account has been provisioned, create an API key for authentication. You must be the organization Owner, or have both a Chainlink Platform role (**Admin** or **User**) and a CRE Connect role (**Admin** or **Operator**), to complete Getting Started. See [RBAC](/chainlink-platform/rbac) for how roles work.

1. Log in to the [Chainlink Platform](https://app.chain.link), click on "Org settings" in the top-right corner of the navbar to open your **Organization Settings** page, then open the **API Keys** tab.
2. Click **Create API Key** and enter a name for the key.
3. In the **API Scope** section, expand the **CRE Connect** accordion and set the permissions for the API Key. See [API Keys](/chainlink-platform/api-keys?parent=crec#crec) for the full list of permissions available for CRE Connect.
4. Click **Create API Key**, then copy the key and click **Done**. The API key is displayed only once.

> **CAUTION: Save your API key**
>
> The API key is only shown once at creation time. Copy it immediately: if you lose it, you will need to generate a new
> one. Never share your API key. Each user in your organization should create and manage their own key.

You will use this key in the `Authorization` header for all CRE Connect REST calls and as the `apiKey` argument to the Go SDK constructor:

```bash
curl https://cre-connect.api.chain.link/v1/<endpoint> \
  -H "Authorization: Apikey <API_KEY>"
```

```go
client, err := crec.NewClient(
    "https://cre-connect.api.chain.link/v1",
    "<API_KEY>",
    crec.WithOrgID("<your-org-id>"),
)
```

For local development, store the key, the base URL, **and your Organization ID** in environment variables so they never land in source control:

```bash
export CREC_BASE_URL="https://cre-connect.api.chain.link/v1"
export CREC_API_KEY="<your-api-key>"
export CREC_ORG_ID="<your-org-id>"   # the Organization ID from step 1, e.g. org_example00000000000
```

> **NOTE: Why the Organization ID matters at the SDK level**
>
> CRE Connect derives your tenant's **workflow owner address** deterministically from the Organization ID. The SDK uses
> it to bind every event hash to your tenant during `Events.Verify` (and `Events.VerifyOperationStatus`). If you forget
> `WithOrgID`, every verification call returns `events.ErrOrgIDOrWorkflowOwnerReq`. See [Verify Event
> Signatures](/crec/guides/events/verify-signatures) for multi-org and per-event variants.

## 4. Go toolchain

The CRE Connect SDK targets **Go 1.25.3 or higher**, and the DTA extension targets **Go 1.25.5 or higher**. Use **Go 1.25.5+** to cover both. Check your version:

```bash
go version
```

If your installed Go is older, you have two options:

- **Upgrade your toolchain**: follow the official install instructions at [go.dev/dl](https://go.dev/dl/).
- **Let Go fetch the right toolchain on demand**: `GOTOOLCHAIN=auto` is the default since Go 1.21, so as long as your `go.mod` declares `go 1.25.5` (or higher) and a `toolchain` directive, Go will download the matching toolchain transparently the first time you run `go build`, `go run`, or `go mod tidy`. For a fresh project:

  ```bash
  go mod init <your-module>
  go mod edit -go=1.25.5 -toolchain=go1.25.9
  ```

## 5. A supported network and chain selector

Watchers and wallets are pinned to a network. CRE Connect identifies networks by their **chain selector** (a `uint64` represented as a string in API payloads, for example `5009297550715157269` for Ethereum Mainnet).

You can list supported networks at runtime once authenticated (see [Authentication](/crec/getting-started/authentication)) or consult the static [Supported Networks](/crec/supported-networks) reference.

The quickstarts in this section target Sepolia (`16015286601757825753`).

## 6. A signer

Operations are signed off-chain before being submitted to CRE Connect. You will need a key (or a key-management service) to produce ECDSA signatures.

The fastest option for the quickstarts is the **local ECDSA signer** in `crec-sdk/transact/signer/local`, which loads a `*ecdsa.PrivateKey` directly into memory:

```go
import (
    "github.com/ethereum/go-ethereum/crypto"
    "github.com/smartcontractkit/crec-sdk/transact/signer/local"
)

pk, _ := crypto.HexToECDSA("ab12...")
signer := local.NewSigner(pk)
```

The SDK ships first-class adapters for managed signers:

- AWS KMS: `crec-sdk/transact/signer/kms`
- HashiCorp Vault: `crec-sdk/transact/signer/vault`
- Fireblocks: `crec-sdk/transact/signer/fireblocks`
- Privy: `crec-sdk/transact/signer/privy`

You can also implement your own by satisfying the `signer.Signer` interface; see [Implement a Custom Signer](/crec/guides/signers/custom).

## Checklist

- Organization created on [app.chain.link](https://app.chain.link); Organization ID copied.
- Organization ID shared with Chainlink Labs and CRE Connect enablement confirmed.
- API key generated in your org's **Organization → API Keys** tab, stored securely, and exposed via env var.
- `CREC_BASE_URL`, `CREC_API_KEY`, and `CREC_ORG_ID` exported in your shell.
- `go version` reports **1.25.5** or higher (or your `go.mod` has `go 1.25.5` + a `toolchain` directive).
- You have picked a supported network and know its chain selector.
- You have a signer (local key for the quickstarts; managed signer for production).

When all of these are checked, continue to [SDK Installation](/crec/getting-started/sdk-installation).

## Related

- [SDK Installation](/crec/getting-started/sdk-installation): install the modules you'll use in the next step.
- [Authentication](/crec/getting-started/authentication): initialize the client with the API key you just created.
- [Supported Networks](/crec/supported-networks): pick a chain and grab its chain selector.