> ## Documentation Index
> Fetch the complete documentation index at: https://trust-link-tsn.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# sessions/proof-of-possession API

> Source-derived exports, parameter and result types, public methods and source links.

This reference is generated from the checked-out TypeScript exports. Types and signatures describe the package contract; source presence does not establish deployment or service availability. Error expressions below are direct throws, not an exhaustive list of failures from dependencies.

[Source module](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts). See the [reference index](https://trust-link-tsn.mintlify.site/sdk/api-reference.md) for package import boundaries and verification scope.

## createRequestBodyCommitment

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/sessions/proof-of-possession`. [Implementation, line 44](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L44).

```ts theme={null}
createRequestBodyCommitment(body: Uint8Array): Promise<string>
```

## serializeSessionProof

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/sessions/proof-of-possession`. [Implementation, line 26](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L26).

```ts theme={null}
serializeSessionProof(claims: SessionProofClaims): Uint8Array
```

## SessionProofClaims

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/sessions/proof-of-possession`. [Implementation, line 6](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L6).

### SessionProofClaims.protocolVersion

[Source, line 7](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L7).

```ts theme={null}
protocolVersion: "tsn-session-proof-v1"
```

### SessionProofClaims.domain

[Source, line 8](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L8).

```ts theme={null}
domain: "TSN_PRIVATE_REQUEST_PROOF"
```

### SessionProofClaims.sessionId

[Source, line 9](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L9).

```ts theme={null}
sessionId: string
```

### SessionProofClaims.deviceId

[Source, line 10](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L10).

```ts theme={null}
deviceId: string
```

### SessionProofClaims.deviceSigningKeyFingerprint

[Source, line 11](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L11).

```ts theme={null}
deviceSigningKeyFingerprint: string
```

### SessionProofClaims.permission

[Source, line 12](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L12).

```ts theme={null}
permission: string
```

### SessionProofClaims.method

[Source, line 13](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L13).

```ts theme={null}
method: string
```

### SessionProofClaims.resource

[Source, line 14](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L14).

```ts theme={null}
resource: string
```

### SessionProofClaims.bodyCommitment

[Source, line 15](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L15).

```ts theme={null}
bodyCommitment: string
```

### SessionProofClaims.nonce

[Source, line 16](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L16).

```ts theme={null}
nonce: string
```

### SessionProofClaims.issuedAt

[Source, line 17](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L17).

```ts theme={null}
issuedAt: string
```

### SessionProofClaims.expiresAt

[Source, line 18](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L18).

```ts theme={null}
expiresAt: string
```

### SessionProofClaims.audience

[Source, line 19](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L19).

```ts theme={null}
audience: string
```

## SignedSessionProof

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/sessions/proof-of-possession`. [Implementation, line 22](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L22).

### SignedSessionProof.signatureBase64Url

[Source, line 23](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L23).

```ts theme={null}
signatureBase64Url: string
```

### SignedSessionProof.protocolVersion

[Source, line 7](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L7).

```ts theme={null}
protocolVersion: "tsn-session-proof-v1"
```

### SignedSessionProof.domain

[Source, line 8](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L8).

```ts theme={null}
domain: "TSN_PRIVATE_REQUEST_PROOF"
```

### SignedSessionProof.sessionId

[Source, line 9](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L9).

```ts theme={null}
sessionId: string
```

### SignedSessionProof.deviceId

[Source, line 10](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L10).

```ts theme={null}
deviceId: string
```

### SignedSessionProof.deviceSigningKeyFingerprint

[Source, line 11](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L11).

```ts theme={null}
deviceSigningKeyFingerprint: string
```

### SignedSessionProof.permission

[Source, line 12](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L12).

```ts theme={null}
permission: string
```

### SignedSessionProof.method

[Source, line 13](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L13).

```ts theme={null}
method: string
```

### SignedSessionProof.resource

[Source, line 14](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L14).

```ts theme={null}
resource: string
```

### SignedSessionProof.bodyCommitment

[Source, line 15](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L15).

```ts theme={null}
bodyCommitment: string
```

### SignedSessionProof.nonce

[Source, line 16](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L16).

```ts theme={null}
nonce: string
```

### SignedSessionProof.issuedAt

[Source, line 17](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L17).

```ts theme={null}
issuedAt: string
```

### SignedSessionProof.expiresAt

[Source, line 18](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L18).

```ts theme={null}
expiresAt: string
```

### SignedSessionProof.audience

[Source, line 19](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L19).

```ts theme={null}
audience: string
```

## signSessionProof

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/sessions/proof-of-possession`. [Implementation, line 48](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L48).

```ts theme={null}
signSessionProof(claims: SessionProofClaims, deviceSigningPrivateKey: CryptoKey): Promise<SignedSessionProof>
```

## TSN\_SESSION\_PROOF\_DOMAIN

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/sessions/proof-of-possession`. [Implementation, line 4](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L4).

```ts theme={null}
"TSN_PRIVATE_REQUEST_PROOF"
```

## TSN\_SESSION\_PROOF\_VERSION

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/sessions/proof-of-possession`. [Implementation, line 3](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L3).

```ts theme={null}
"tsn-session-proof-v1"
```

## verifySessionProof

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/sessions/proof-of-possession`. [Implementation, line 60](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/sessions/proof-of-possession.ts#L60).

```ts theme={null}
verifySessionProof(params: { proof: SignedSessionProof; deviceSigningPublicKey: JsonWebKey; expectedSessionId: string; expectedDeviceId: string; expectedPermission: string; expectedMethod: string; expectedResource: string; expectedBodyCommitment: string; expectedAudience: string; sessionExpiresAt: string; deviceStatus: "active" | "revoked" | "expired"; now?: Date; consumeNonce: (nonce: string) => boolean; }): Promise<{ valid: true; } | { valid: false; reason: string; }>
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.