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

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

## buildCreateIntentRequest

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/contracts`. [Implementation, line 119](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/contracts.ts#L119).

```ts theme={null}
buildCreateIntentRequest(params: { paymentId: string; recipientHash: string; recipientTin: string; tokenMintAddress: string; amount: number; senderWallet: string; senderAuthorizationMessage: string; senderAuthorizationSignature: string; senderAuthorizationNonce: string; senderAuthorizationIssuedAt?: string | null; senderAuthorizationExpiresAt?: string | null; senderFeeAmount?: number | null; senderSignedFundingTransaction: string; senderFundingMode: "tcap_deposit_v2"; recipientAmount?: number; destinationNetwork?: string | null; destinationExecutor?: string | null; destinationToken?: string | null; settlementRouteId?: string | null; source?: string; }): CreateIntentRequest
```

## computeTsnUiStage

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/contracts`. [Implementation, line 166](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/contracts.ts#L166).

```ts theme={null}
computeTsnUiStage(intent: IntentState): TsnUiStage
```

## CreateIntentRequest

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/contracts`. [Implementation, line 24](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/contracts.ts#L24).

```ts theme={null}
export type CreateIntentRequest = {
  paymentId: string;
  intentSeedHash: string;
  recipientHash: string;
  recipientTin: string;
  tokenMintAddress: string;
  amount: number;
  senderWallet: string;
  senderAuthorizationMessage: string;
  senderAuthorizationSignature: string;
  senderAuthorizationNonce: string;
  senderAuthorizationIssuedAt?: string | null;
  senderAuthorizationExpiresAt?: string | null;
  senderFeeAmount?: number | null;
  senderSignedFundingTransaction: string;
  senderFundingMode: "tcap_deposit_v2";
  recipientAmount?: number;
  source?: string;
  destinationNetwork?: string | null;
  destinationExecutor?: string | null;
  destinationToken?: string | null;
  settlementRouteId?: string | null;
};
```

## IntentState

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/contracts`. [Implementation, line 103](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/contracts.ts#L103).

```ts theme={null}
export type IntentState = {
  status: TsnIntentStatus;
};
```

## PaymentIntentRecord

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/contracts`. [Implementation, line 9](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/contracts.ts#L9).

### PaymentIntentRecord.id

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

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

### PaymentIntentRecord.payment\_id

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

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

### PaymentIntentRecord.intent\_seed\_hash

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

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

### PaymentIntentRecord.recipient\_hash

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

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

### PaymentIntentRecord.token\_mint\_address

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

```ts theme={null}
token_mint_address: string | null
```

### PaymentIntentRecord.amount

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

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

### PaymentIntentRecord.status

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

```ts theme={null}
status: TsnIntentStatus
```

### PaymentIntentRecord.assigned\_cranker\_pubkey

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

```ts theme={null}
assigned_cranker_pubkey: string | null
```

### PaymentIntentRecord.lease\_expiry\_at

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

```ts theme={null}
lease_expiry_at: string | null
```

### PaymentIntentRecord.funding\_tx\_sig

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

```ts theme={null}
funding_tx_sig: string | null
```

### PaymentIntentRecord.settlement\_tx\_sig

[Source, line 20](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/contracts.ts#L20).

```ts theme={null}
settlement_tx_sig: string | null
```

### PaymentIntentRecord.created\_at

[Source, line 21](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/contracts.ts#L21).

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

## PaymentIntentStatus

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/contracts`. [Implementation, line 7](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/contracts.ts#L7).

```ts theme={null}
export type PaymentIntentStatus = TsnIntentStatus;
```

## PublicTsnMempoolIntent

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

```ts theme={null}
export type PublicTsnMempoolIntent = Pick<
  TsnMempoolIntent,
  | "id"
  | "paymentId"
  | "intentSeedHash"
  | "recipientHash"
  | "tokenMintAddress"
  | "amount"
  | "recipientAmount"
  | "source"
  | "status"
  | "assignedCrankerPubkey"
  | "fundingTxSig"
  | "settlementTxSig"
  | "settlementResolution"
  | "settlementReason"
  | "postedAt"
  | "updatedAt"
>;
```

## sha256Hex

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/contracts`. [Implementation, line 107](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/contracts.ts#L107).

```ts theme={null}
sha256Hex(input: string): string
```

## TsnEpochChallenge

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/contracts`. [Implementation, line 86](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/contracts.ts#L86).

```ts theme={null}
export type TsnEpochChallenge = {
  id: string;
  epoch: number;
  tokenMintAddress?: string | null;
  epochAccount?: string | null;
  pea?: string | null;
  rootHash: string;
  totalToDistribute: string;
  crankerCreditSumMod: string;
  status: TsnEpochChallengeStatus;
  winnerCrankerPubkey?: string | null;
  reimbursementTxSig?: string | null;
  settlementReason?: string | null;
  postedAt: string;
  updatedAt: string;
};
```

## TsnEpochChallengeStatus

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/contracts`. [Implementation, line 84](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/contracts.ts#L84).

```ts theme={null}
export type TsnEpochChallengeStatus = "open" | "submitted" | "completed" | "failed";
```

## TsnIntentStatus

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

```ts theme={null}
export type TsnIntentStatus = "pending" | "onchain" | "executed" | "settled" | "expired" | "failed" | "canceled" | "reverted";
```

## TsnIntentWorkItem

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/contracts`. [Implementation, line 80](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/contracts.ts#L80).

```ts theme={null}
export type TsnIntentWorkItem = {
  intent: TsnMempoolIntent;
};
```

## TsnMempoolIntent

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

```ts theme={null}
export type TsnMempoolIntent = CreateIntentRequest & {
  id: string;
  status: TsnIntentStatus;
  assignedCrankerPubkey?: string | null;
  fundingTxSig?: string | null;
  settlementTxSig?: string | null;
  settlementResolution?: "completed" | "reverted" | null;
  settlementReason?: string | null;
  postedAt: string;
  updatedAt: string;
};
```

## TsnUiStage

Import from `@trustlink/tsn-sdk` or `@trustlink/tsn-sdk/contracts`. [Implementation, line 5](https://github.com/bigdreamsweb3/trustlink-pay/blob/main/tsn-protocol/sdks/tsn-sdk/src/contracts.ts#L5).

```ts theme={null}
export type TsnUiStage = "intent_pending" | "funded" | "lease_claimed" | "cranker_paid" | "epoch_settled" | "reverted";
```


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