---
title: Create Credential
description: Creates a new credential that defines an attestation authority
---

Creates a new credential that defines an attestation authority. This instruction
allows users to create credentials that specify who can issue attestations and
what types of attestations they can issue.

## Parameters

| Parameter       | Type               | Description                                                                 |
| --------------- | ------------------ | --------------------------------------------------------------------------- |
| `payer`         | `Signer`           | The account that will pay for the transaction                               |
| `credential`    | `PublicKey \| Pda` | The credential account to create                                            |
| `authority`     | `Signer`           | The authority who will control the credential                               |
| `systemProgram` | `PublicKey \| Pda` | The System Program account (defaults to '11111111111111111111111111111111') |
| `name`          | `string`           | The name of the credential                                                  |
| `signers`       | `Address[]`        | The list of authorized signers who can create attestations                  |

## Returns

Returns a `TransactionBuilder` that can be used to build and send the
transaction.

## Example

```typescript
import { getCreateCredentialInstruction } from "sas-lib";

const transaction = getCreateCredentialInstruction({
  payer: payerSigner,
  credential: credentialPublicKey,
  authority: authoritySigner,
  systemProgram: systemProgramPublicKey,
  name: "My Credential",
  signers: [signer1PublicKey, signer2PublicKey]
});

// Send the transaction
await transaction.sendAndConfirm();
```

## Important Notes

- The payer must be a signer of the transaction
- The authority must be a signer of the transaction
- The credential account must be writable
- This operation requires the System Program for rent exemption calculations
- The authority will have control over the credential and can:
  - Modify the list of authorized signers
  - Create schemas under this credential
  - Close the credential
- The authorized signers can:
  - Create attestations under this credential
  - Close attestations they created
- The name should be descriptive of the credential's purpose
- The list of signers can be empty initially and modified later
- The authority can be one of the authorized signers
