> ## Documentation Index
> Fetch the complete documentation index at: https://docs.learnway.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Certificates (NFTs)

> Mint and verify soulbound NFT course completion certificates on-chain.

# Certificates (NFTs)

Upon completing 100% of a course or learning path, learners are eligible to claim a verifiable on-chain completion certificate (ERC-721 / ERC-1155).

***

## Get User Certificates

Returns all certificates issued to or claimed by the user.

### Endpoint

```http theme={null}
GET /api/v2/certificates
```

### Headers

```http theme={null}
Authorization: Bearer <jwt_access_token>
```

### Response (200 OK)

```json theme={null}
{
  "success": true,
  "data": [
    {
      "id": "cert-uuid-1",
      "courseId": "7a3e9c12-3456-4abc-8def-1234567890ab",
      "courseTitle": "Solidity Smart Contract Development",
      "studentName": "John Doe",
      "issuedAt": "2026-08-20T14:30:00.000Z",
      "certificateNumber": "LW-2026-9812",
      "nftTokenId": "104",
      "transactionHash": "0x4a9b...71c2",
      "viewUrl": "https://learnway.xyz/certificates/LW-2026-9812",
      "metadataUri": "ipfs://QmXyz..."
    }
  ]
}
```

***

## Claim Certificate

Initiates gasless on-chain minting of the completion certificate.

### Endpoint

```http theme={null}
POST /api/v2/certificates/claim
```

### Request Body

```json theme={null}
{
  "courseId": "7a3e9c12-3456-4abc-8def-1234567890ab",
  "studentName": "Johnathan Doe"
}
```

### Response (201 Created)

```json theme={null}
{
  "success": true,
  "data": {
    "certificateId": "cert-uuid-1",
    "certificateNumber": "LW-2026-9812",
    "status": "MINTING",
    "message": "Certificate minting has been queued on Lisk L2."
  }
}
```
