---
title: "Register an external wallet address"
method: POST
path: "/vault/accounts/{vaultAccountId}/wallets"
tags: ["wallets"]
---

# Register an external wallet address

`POST /vault/accounts/{vaultAccountId}/wallets`

Non-custodial wallet registration. The caller provides the on-chain address,
the post-quantum public key, and a signature proving ownership. The custody
service verifies that the public key matches the address and that the signature
is valid over the deterministic challenge Keccak256('qustody:register:' + address).
The custody service never holds private keys.

## Path parameters

- `vaultAccountId` string, uuid, required

## Headers

- `Idempotency-Key` string

## Request body

- RegisterWalletRequest
  - `assetId` string, uuid, required
  - `address` string, required
  - `publicKey` string, required — Hex-encoded post-quantum public key
  - `signature` string, required — Hex-encoded post-quantum signature over the ownership challenge: Keccak256('qustody:register:' + lowercase_address). Proves the caller controls the private key for the given address.
  - `label` string

## Response `201`

Wallet registered

- Wallet
  - `id` string, uuid, required
  - `vaultId` string, uuid, required
  - `tenantId` string, uuid, required
  - `assetId` string, uuid, required
  - `address` string, required
  - `publicKey` string — Hex-encoded post-quantum public key
  - `label` string
  - `status` 'ACTIVE' | 'ARCHIVED', required
  - `createdAt` string, date-time, required

---

[API](https://skmtc.net/quantum-chain-pte-ltd/apis/qustody-api.md) · [All operations](https://skmtc.net/quantum-chain-pte-ltd/apis/qustody-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/quantum-chain-pte-ltd/qustody-api/revisions/ecb2cea3c096/schema)
