Use a portal project key

A project key authenticates Gateway to Graftcode portal and project metadata services. It is not the same as the registry URL, the runtime host, or a call credential.

Note

Project Key registers the Gateway in a project. The registry URL installs the Graft. The

runtime host executes methods. The call credential authorizes a specific call.

See Project Key, registry, host, and credentials for the canonical diagram and table.

A Gateway without a project key can receive a new registry identifier after restart. Callers must copy install commands from the currently running Gateway or Vision—not from an old log line.

The project key does not authenticate individual Graft invocations. See Authenticate Graft calls and Authentication operations.

Obtain a project key

  1. Sign in to Graftcode Portal.
  2. Open or create a project for the Receiver you host.
  3. Copy the project key from the project settings or onboarding flow shown in the portal UI for your account.

The key is a JWT, often used in env:jwt form (for example dev:eyJ...) or as a bare token. Copy the exact format the portal displays.

Portal screen names and navigation can change between releases. Use the live portal UI as the authority.

Configure Gateway

Prefer environment variables in deployment; they override CLI flags:

export GC_PROJECT_KEY="dev:<jwt-copied-from-portal>"\ndotnet build ./Pricing/Pricing.csproj
gg ./Pricing/bin/Debug/net9.0/Pricing.dll
Or pass on the command line (avoid in shared shells and images):
gg --projectKey "dev:<jwt-copied-from-portal>" ./Pricing/bin/Debug/net9.0/Pricing.dll
For Docker, inject `GC_PROJECT_KEY` through the platform secret store—never bake it into the image. See [Deploy with Docker](/how-to-guides/deploy-gateway-with-docker).

Versioning interaction

With a project key, Gateway uses project-backed publication semantics. In standalone mode without a key, versioning is disabled by default unless --keepVersioning is set. See Gateway versioning.

Next steps