---
title: "Upload KYC document and get IPFS hash"
method: POST
path: "/api/staking/v1/{coin}/wallets/{walletId}/kyc/upload"
tags: ["Staking Request"]
---

# Upload KYC document and get IPFS hash

`POST /api/staking/v1/{coin}/wallets/{walletId}/kyc/upload`

Accepts a KYC PDF document, uploads it to the XinFin MasterNode IPFS API,
and returns the authoritative IPFS hash assigned by the network.
Only supported for XDC and TXDC coins.

The returned hash must be included in the subsequent XDC stake request as `kycHash`.
It is submitted to the validator contract in the AUTHORIZE (uploadKYC) transaction.

## Path parameters

- `coin` 'xdc' | 'txdc', required
- `walletId` string, required

## Response `200`

IPFS hash computed successfully.

- XdcKycUploadResponse — Response containing the IPFS CIDv0 hash of the uploaded KYC document.
  - `hash` string, required — IPFS CIDv0 hash of the uploaded KYC document. Must be included as `kycHash` in the subsequent XDC stake request.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `500` — Server Error - Transient error please try again

---

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