# identity/claims/claim

## Index

### Type aliases

* [Claim](#claim)
* [ClaimPayload](#claimpayload)
* [DomainClaim](#domainclaim)
* [KeybaseClaim](#keybaseclaim)
* [NameClaim](#nameclaim)
* [StorageClaim](#storageclaim)

### Variables

* [ClaimType](#const-claimtype)
* [DOMAIN\_TXT\_HEADER](#const-domain_txt_header)
* [KeybaseClaimType](#const-keybaseclaimtype)
* [SignedClaimType](#const-signedclaimtype)

### Functions

* [createDomainClaim](#const-createdomainclaim)
* [createNameClaim](#const-createnameclaim)
* [createStorageClaim](#const-createstorageclaim)
* [hashOfClaim](#hashofclaim)
* [hashOfClaims](#hashofclaims)
* [isOfType](#const-isoftype)
* [serializeClaim](#serializeclaim)
* [validateClaim](#validateclaim)

## Type aliases

### Claim

Ƭ **Claim**: [*AttestationServiceURLClaim*](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/_identity_claims_attestation_service_url_#attestationserviceurlclaim) *|* [*DomainClaim*](#domainclaim) *|* [*KeybaseClaim*](#keybaseclaim) *|* [*NameClaim*](#nameclaim) *|* [*AccountClaim*](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/_identity_claims_account_#accountclaim) *|* [*StorageClaim*](#storageclaim)

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:57*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L57)

### ClaimPayload

Ƭ **ClaimPayload**: *K extends typeof DOMAIN ? DomainClaim : K extends typeof NAME ? NameClaim : K extends typeof KEYBASE ? KeybaseClaim : K extends typeof ATTESTATION\_SERVICE\_URL ? AttestationServiceURLClaim : K extends typeof ACCOUNT ? AccountClaim : StorageClaim*

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:65*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L65)

### DomainClaim

Ƭ **DomainClaim**: *t.TypeOf‹typeof DomainClaimType›*

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:54*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L54)

### KeybaseClaim

Ƭ **KeybaseClaim**: *t.TypeOf‹typeof KeybaseClaimType›*

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:18*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L18)

### NameClaim

Ƭ **NameClaim**: *t.TypeOf‹typeof NameClaimType›*

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:55*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L55)

### StorageClaim

Ƭ **StorageClaim**: *t.TypeOf‹typeof StorageClaimType›*

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:56*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L56)

## Variables

### `Const` ClaimType

• **ClaimType**: *UnionC‹\[TypeC‹object›, Type‹object, any, unknown›, TypeC‹object›, TypeC‹object›, TypeC‹object›, TypeC‹object›]›* = t.union(\[ AttestationServiceURLClaimType, AccountClaimType, DomainClaimType, KeybaseClaimType, NameClaimType, StorageClaimType, ])

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:39*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L39)

### `Const` DOMAIN\_TXT\_HEADER

• **DOMAIN\_TXT\_HEADER**: *"celo-site-verification"* = "celo-site-verification"

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:53*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L53)

### `Const` KeybaseClaimType

• **KeybaseClaimType**: *TypeC‹object›* = t.type({ type: t.literal(ClaimTypes.KEYBASE), timestamp: TimestampType, // TODO: Validate compliant username before just interpolating username: t.string, })

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:12*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L12)

### `Const` SignedClaimType

• **SignedClaimType**: *TypeC‹object›* = t.type({ claim: ClaimType, signature: SignatureType, })

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:48*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L48)

## Functions

### `Const` createDomainClaim

▸ **createDomainClaim**(`domain`: string): [*DomainClaim*](#domainclaim)

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:116*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L116)

**Parameters:**

| Name     | Type   |
| -------- | ------ |
| `domain` | string |

**Returns:** [*DomainClaim*](#domainclaim)

### `Const` createNameClaim

▸ **createNameClaim**(`name`: string): [*NameClaim*](#nameclaim)

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:110*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L110)

**Parameters:**

| Name   | Type   |
| ------ | ------ |
| `name` | string |

**Returns:** [*NameClaim*](#nameclaim)

### `Const` createStorageClaim

▸ **createStorageClaim**(`storageURL`: string): [*StorageClaim*](#storageclaim)

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:122*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L122)

**Parameters:**

| Name         | Type   |
| ------------ | ------ |
| `storageURL` | string |

**Returns:** [*StorageClaim*](#storageclaim)

### hashOfClaim

▸ **hashOfClaim**(`claim`: [Claim](#claim)): *string*

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:97*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L97)

**Parameters:**

| Name    | Type            |
| ------- | --------------- |
| `claim` | [Claim](#claim) |

**Returns:** *string*

### hashOfClaims

▸ **hashOfClaims**(`claims`: [Claim](#claim)\[]): *string*

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:101*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L101)

**Parameters:**

| Name     | Type               |
| -------- | ------------------ |
| `claims` | [Claim](#claim)\[] |

**Returns:** *string*

### `Const` isOfType

▸ **isOfType**<**K**>(`type`: K): *(Anonymous function)*

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:77*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L77)

**Type parameters:**

▪ **K**: [*ClaimTypes*](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/external-modules/broken-reference)

**Parameters:**

| Name   | Type |
| ------ | ---- |
| `type` | K    |

**Returns:** *(Anonymous function)*

### serializeClaim

▸ **serializeClaim**(`claim`: [Claim](#claim)): *string*

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:106*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L106)

**Parameters:**

| Name    | Type            |
| ------- | --------------- |
| `claim` | [Claim](#claim) |

**Returns:** *string*

### validateClaim

▸ **validateClaim**(`kit`: [ContractKit](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/external-modules/broken-reference), `claim`: [Claim](#claim), `address`: string): *Promise‹undefined | string›*

*Defined in* [*packages/contractkit/src/identity/claims/claim.ts:87*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/identity/claims/claim.ts#L87)

Validates a claim made by an account, i.e. whether the claim is usable

**Parameters:**

| Name      | Type                                                                                                         | Description                          |
| --------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------ |
| `kit`     | [ContractKit](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/external-modules/broken-reference) | The ContractKit object               |
| `claim`   | [Claim](#claim)                                                                                              | The claim to validate                |
| `address` | string                                                                                                       | The address that is making the claim |

**Returns:** *Promise‹undefined | string›*

If valid, returns undefined. If invalid or unable to validate, returns a string with the error
