> ## 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.

# lit-threshold-provider 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/lit-threshold-provider.ts). See the [reference index](https://trust-link-tsn.mintlify.site/sdk/api-reference.md) for package import boundaries and verification scope.

## createLitSolanaTinMasterSeedProvider

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/lit-threshold-provider`. [Implementation, line 229](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L229).

```ts theme={null}
createLitSolanaTinMasterSeedProvider(): Promise<LitSolanaTinMasterSeedProvider>
```

## LIT\_SOLANA\_TIN\_ACCESS\_READINESS

Lit's current Solana AuthSig proves control of a Solana address, but the
pinned SDK does not provide a verified device-bound capability flow that
prevents a captured Solana AuthSig from being presented by another client.
Its normal Solana access-control decryption is directly wallet-gated; the
local TSN device proof is not evaluated by those threshold nodes.
Master-seed protection must fail closed until that second factor is enforced
by the threshold network, not merely checked by this browser process.

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/lit-threshold-provider`. [Implementation, line 34](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L34).

```ts theme={null}
{ readonly status: "BLOCKED_UNVERIFIED_DEVICE_BINDING"; readonly safeForTinMasterSeeds: false; readonly reason: "Pinned Lit Solana access-control decryption does not enforce TSN's authorized-device binding, wallet-plus-device proof, and nonce contract at the threshold network."; }
```

## LitChipotleTinMasterSeedProvider

Production provider for the immutable Chipotle action. The executor is a
same-origin frontend-server proxy so the scoped Lit usage credential never
enters browser state. Requests contain public proofs only; responses contain
an opaque PKP ciphertext and/or a data key encrypted to the authorized
device.

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/lit-threshold-provider`. [Implementation, line 245](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L245).

```ts theme={null}
new LitChipotleTinMasterSeedProvider(configuration: LitTinActionConfiguration, executeAction: LitTinActionExecutor, sessionBinding: string): LitChipotleTinMasterSeedProvider
```

### LitChipotleTinMasterSeedProvider.id

[Source, line 246](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L246).

```ts theme={null}
id: "lit-chipotle-authorized-device"
```

### LitChipotleTinMasterSeedProvider.getDeviceSessionBinding

[Source, line 257](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L257).

```ts theme={null}
getDeviceSessionBinding(): Promise<string>
```

### LitChipotleTinMasterSeedProvider.protectKey

[Source, line 261](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L261).

```ts theme={null}
protectKey(params: TinMasterSeedAccessContext): Promise<{ protectedKey: string; protectedKeyCommitment: string; accessControlHash: string; deviceKeyEnvelope: TinDeviceKeyEnvelope; }>
```

### LitChipotleTinMasterSeedProvider.releaseKey

[Source, line 284](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L284).

```ts theme={null}
releaseKey(params: TinMasterSeedAccessContext & { protectedKey: string; protectedKeyCommitment: string; accessControlHash: string; }): Promise<TinDeviceKeyEnvelope>
```

Direct failure expressions:

```text theme={null}
new Error("TIN threshold session binding is required")
new Error("TIN threshold action returned the wrong operation")
```

## LitSolanaTinMasterSeedProvider

Browser-only threshold provider. The Lit session key is generated in memory
and is never placed in localStorage, sessionStorage, TIN data, or an API.

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/lit-threshold-provider`. [Implementation, line 87](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L87).

```ts theme={null}
new LitSolanaTinMasterSeedProvider(client: ThresholdLitClient, sessionKey: SessionKeyPair): LitSolanaTinMasterSeedProvider
```

### LitSolanaTinMasterSeedProvider.id

[Source, line 88](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L88).

```ts theme={null}
id: "lit-datil-dev-solana-authorized-device"
```

### LitSolanaTinMasterSeedProvider.getDeviceSessionBinding

[Source, line 115](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L115).

```ts theme={null}
getDeviceSessionBinding(): Promise<string>
```

### LitSolanaTinMasterSeedProvider.protectKey

[Source, line 119](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L119).

```ts theme={null}
protectKey(params: TinMasterSeedAccessContext): Promise<{ protectedKey: string; protectedKeyCommitment: string; accessControlHash: string; deviceKeyEnvelope: TinDeviceKeyEnvelope; }>
```

### LitSolanaTinMasterSeedProvider.releaseKey

[Source, line 150](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L150).

```ts theme={null}
releaseKey(params: TinMasterSeedAccessContext & { protectedKey: string; protectedKeyCommitment: string; accessControlHash: string; }): Promise<TinDeviceKeyEnvelope>
```

### LitSolanaTinMasterSeedProvider.disconnect

[Source, line 223](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L223).

```ts theme={null}
disconnect(): Promise<void>
```

### LitSolanaTinMasterSeedProvider.connect (static)

[Source, line 95](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L95).

```ts theme={null}
connect(): Promise<LitSolanaTinMasterSeedProvider>
```

Direct failure expressions:

```text theme={null}
new Error("The authorized-device threshold provider requires a browser")
new Error("TIN threshold access-control policy does not match the owner wallet")
new Error("TIN wallet authorization belongs to another device session")
new Error("TIN protected-key commitment is invalid")
new Error("TIN protected-key payload is invalid")
```

## LitTinActionExecutor

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/lit-threshold-provider`. [Implementation, line 233](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/lit-threshold-provider.ts#L233).

```ts theme={null}
export type LitTinActionExecutor = (
  request: LitTinActionRequest,
  configuration: LitTinActionConfiguration,
) => Promise<LitTinProtectKeyResponse | LitTinReleaseKeyResponse>;
```


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