# Uploading the Credential Schema

**What We Are Doing:**

* Defining a credential schema that outlines the data fields (e.g., age, firstName, lastName).
* Uploading this schema to the Issuer so it knows how to structure the KYC Verifiable Credential.

**Why:** Without a schema, the Issuer does not know what the credential should contain. The schema ensures consistency and interoperability.

**Steps:** Create a `schema.json` file (locally) with:

```json
{
  "name": "KYC Verifiable Credential",
  "type": "KYC Verifiable Credential",
  "credentialSubject": {
    "type": "object",
    "properties": {
      "age": {
        "type": "number",
        "title": "age"
      },
      "firstName": {
        "type": "string",
        "title": "first_name"
      },
      "lastName": {
        "type": "string",
        "title": "last_name"
      }
    },
    "required": ["age", "firstName", "lastName"]
  }
}
```

Upload it using `curl`:

```bash
curl -X POST "$ISSUER_URL/api/v1/schemas" \
  -H "x-client-secret: $ISSUER_SECRET" \
  -H "Content-Type: application/json" \
  -d @schema.json
```

Now the Issuer knows how to issue a "KYC Verifiable Credential" with the specified fields.
