---
title: "Create identity (Signed Fetch)"
method: POST
path: "/identities"
tags: ["Identities"]
---

# Create identity (Signed Fetch)

`POST /identities`

Creates a temporary identity used for auto-login.  
This endpoint requires a Signed Fetch request per ADR-44. Requests signed by scenes are rejected.

## Request body

- object
  - `identity` object, required
    - `expiration` string, date-time, required
    - `ephemeralIdentity` object, required
      - `address` string, required — Ephemeral wallet address
      - `publicKey` string, required — Ephemeral wallet public key
      - `privateKey` string, required — Ephemeral wallet private key
    - `authChain` object[], required — Authentication chain for signature validation (from @dcl/schemas)
      - `type` string, required — Auth link type (e.g., SIGNER, ECDSA_EPHEMERAL)
      - `payload` string, required — Link payload
      - `signature` string, required — Link signature

## Response `201`

Identity created

- object
  - `identityId` string, uuid, required — Unique identity identifier
  - `expiration` string, date-time, required — Identity expiration time (ISO 8601)

## Other responses

- `400` — Invalid request or auth chain
- `401` — Ephemeral key expired
- `403` — Authorization mismatch or invalid signer

---

[API](https://skmtc.net/decentraland/apis/realm-provider-api.md) · [All operations](https://skmtc.net/decentraland/apis/realm-provider-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/decentraland/realm-provider-api/revisions/d94e0e0f1821/schema)
