---
title: "Register a new account"
method: POST
path: "/register"
tags: ["Accounts"]
---

# Register a new account

`POST /register`

Register a new account with factory, factory data, session details, and target. `target.chain` must use a CAIP-2 chain identifier (for example "eip155:8453").

## Headers

- `x-api-key` string, required — API key for authentication
- `x-api-version` string — API version identifier (e.g. "2026-04.amazon"). Optional today, will become required in a future release.

## Request body

- RegisterRequestBody
  - `account` AccountInput, required
    - `address` string, required — Ethereum address (0x followed by 40 hex characters)
    - `accountParams` AccountParams, required
      - `factory` string, required — Ethereum address (0x followed by 40 hex characters)
      - `factoryData` string, required — Hex-encoded string (0x followed by hex characters)
      - `sessionDetails` EnableSessionDetails, required
        - `hashesAndChainIds` object[], required
          - `chainId` integer, required — Positive integer
          - `sessionDigest` string, required — Hex-encoded string (0x followed by hex characters)
        - `signature` string, required — Hex-encoded string (0x followed by hex characters)
    - `target` Target, required — Destination target configuration. `chain` must be a CAIP-2 chain identifier such as "eip155:8453", "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", "tron:mainnet" or "hypercore:mainnet" — see `destination` on `/chains`. `token` and `recipient` follow the chain's address format: 0x-hex for EVM and HyperCore, base58 for Solana, base58check (T-prefixed) for Tron. Tron and HyperCore destinations require an explicit `recipient`, since the EVM account address is not an address on those chains and cannot be defaulted to. `outputTokenRules` select the final target token per source token; `rejectUnmapped` ignores deposits with no matching rule.
      - `recipient` string
      - `chain` string, required — CAIP-2 chain identifier (e.g. "eip155:8453")
      - `token` string, required
      - `outputTokenRules` OutputTokenRule[]
        - `match` OutputTokenRuleMatch, required — Source-token match criteria. Rules may match by source chain, source token address, source symbol, or a combination.
          - `chain` string — CAIP-2 chain identifier (e.g. "eip155:8453")
          - `token` string
          - `symbol` string
        - `outputToken` string, required
      - `rejectUnmapped` boolean
      - `postBridgeActions` unknown

## Response `200`

Account registered successfully

- RegisterResponse
  - `evmDepositAddress` string, required
  - `solanaDepositAddress` string
  - `tronDepositAddress` string

## Other responses

- `400` — Invalid account data or unauthorized
- `403` — API key lacks required deposits scope
- `500` — Failed to register with Alchemy
- `503` — Webhook provider enrollment is rate limited; retry after the number of seconds in the Retry-After header

---

[API](https://skmtc.net/rhinestonewtf/apis/deposit-service-api.md) · [All operations](https://skmtc.net/rhinestonewtf/apis/deposit-service-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/rhinestonewtf/deposit-service-api/versions/ce4e0abfe33a/schema)
