# loyalty
Documentation: next (source: develop).

Install the preview: `pnpm add @aephia/atlas-kit@next`. These docs follow develop and may include changes not yet published to npm.

Markdown source of https://develop.atlas-kit-docs.pages.dev/reference/loyalty/ — see https://develop.atlas-kit-docs.pages.dev/ai/ for the full machine-readable surface.

## Interfaces

<a id="loyaltyatlasbanksnapshot"></a>

### LoyaltyAtlasBankSnapshot

Defined in: [packages/sage/src/loyalty/index.ts:98](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L98)

Immutable accumulated ATLAS bank for one Profile and faction.

#### Example

```ts
declare const bank: LoyaltyAtlasBankSnapshot;
console.log(bank.claimableAtlasRaw, bank.expiresAtUnixSeconds);
```

#### Extends

- `Omit`\<`LoyaltyAtlasBankAccountData`, `"game"` \| `"profile"` \| `"factionId"`\>

#### Properties

<a id="address"></a>

##### address

```ts
readonly address: Address;
```

Defined in: [packages/sage/src/loyalty/index.ts:103](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L103)

<a id="bump"></a>

##### bump

```ts
readonly bump: number;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:100](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L100)

###### Inherited from

```ts
Omit.bump
```

<a id="claimableatlasraw"></a>

##### claimableAtlasRaw

```ts
readonly claimableAtlasRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:104](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L104)

###### Inherited from

```ts
Omit.claimableAtlasRaw
```

<a id="expiresatunixseconds"></a>

##### expiresAtUnixSeconds

```ts
readonly expiresAtUnixSeconds: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:108](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L108)

###### Inherited from

```ts
Omit.expiresAtUnixSeconds
```

<a id="faction"></a>

##### faction

```ts
readonly faction: EntityRef<"faction">;
```

Defined in: [packages/sage/src/loyalty/index.ts:107](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L107)

<a id="factionid"></a>

##### factionId

```ts
readonly factionId: number;
```

Defined in: [packages/sage/src/loyalty/index.ts:106](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L106)

<a id="game"></a>

##### game

```ts
readonly game: EntityRef<"game">;
```

Defined in: [packages/sage/src/loyalty/index.ts:104](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L104)

<a id="kind"></a>

##### kind

```ts
readonly kind: "loyaltyAtlasBank";
```

Defined in: [packages/sage/src/loyalty/index.ts:102](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L102)

<a id="lastcreditedatunixseconds"></a>

##### lastCreditedAtUnixSeconds

```ts
readonly lastCreditedAtUnixSeconds: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:107](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L107)

###### Inherited from

```ts
Omit.lastCreditedAtUnixSeconds
```

<a id="lifetimeatlasraw"></a>

##### lifetimeAtlasRaw

```ts
readonly lifetimeAtlasRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:106](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L106)

###### Inherited from

```ts
Omit.lifetimeAtlasRaw
```

<a id="lifetimelpraw"></a>

##### lifetimeLpRaw

```ts
readonly lifetimeLpRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:105](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L105)

###### Inherited from

```ts
Omit.lifetimeLpRaw
```

<a id="profile"></a>

##### profile

```ts
readonly profile: EntityRef<"profile">;
```

Defined in: [packages/sage/src/loyalty/index.ts:105](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L105)

<a id="version"></a>

##### version

```ts
readonly version: number;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:99](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L99)

###### Inherited from

```ts
Omit.version
```

#### Methods

<a id="tojson"></a>

##### toJSON()

```ts
toJSON(): unknown;
```

Defined in: [packages/sage/src/loyalty/index.ts:108](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L108)

###### Returns

`unknown`

***

<a id="loyaltycontributionsnapshot"></a>

### LoyaltyContributionSnapshot

Defined in: [packages/sage/src/loyalty/index.ts:76](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L76)

Immutable Profile contribution for one faction epoch.

#### Example

```ts
declare const contribution: LoyaltyContributionSnapshot;
console.log(contribution.profile.address, contribution.lpRaw);
```

#### Extends

- `Omit`\<`LoyaltyContributionAccountData`, `"game"` \| `"profile"` \| `"factionId"` \| `"settledAtUnixSeconds"`\>

#### Properties

<a id="address-1"></a>

##### address

```ts
readonly address: Address;
```

Defined in: [packages/sage/src/loyalty/index.ts:81](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L81)

<a id="atlasentitlementraw"></a>

##### atlasEntitlementRaw

```ts
readonly atlasEntitlementRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:94](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L94)

###### Inherited from

```ts
Omit.atlasEntitlementRaw
```

<a id="bump-1"></a>

##### bump

```ts
readonly bump: number;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:87](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L87)

###### Inherited from

```ts
Omit.bump
```

<a id="epoch"></a>

##### epoch

```ts
readonly epoch: EntityRef<"loyaltyEpoch">;
```

Defined in: [packages/sage/src/loyalty/index.ts:86](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L86)

<a id="epochindex"></a>

##### epochIndex

```ts
readonly epochIndex: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:92](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L92)

###### Inherited from

```ts
Omit.epochIndex
```

<a id="faction-1"></a>

##### faction

```ts
readonly faction: EntityRef<"faction">;
```

Defined in: [packages/sage/src/loyalty/index.ts:85](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L85)

<a id="factionid-1"></a>

##### factionId

```ts
readonly factionId: number;
```

Defined in: [packages/sage/src/loyalty/index.ts:84](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L84)

<a id="game-1"></a>

##### game

```ts
readonly game: EntityRef<"game">;
```

Defined in: [packages/sage/src/loyalty/index.ts:82](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L82)

<a id="kind-1"></a>

##### kind

```ts
readonly kind: "loyaltyContribution";
```

Defined in: [packages/sage/src/loyalty/index.ts:80](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L80)

<a id="lpraw"></a>

##### lpRaw

```ts
readonly lpRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:93](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L93)

###### Inherited from

```ts
Omit.lpRaw
```

<a id="profile-1"></a>

##### profile

```ts
readonly profile: EntityRef<"profile">;
```

Defined in: [packages/sage/src/loyalty/index.ts:83](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L83)

<a id="settled"></a>

##### settled

```ts
readonly settled: boolean;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:88](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L88)

###### Inherited from

```ts
Omit.settled
```

<a id="settledatunixseconds"></a>

##### settledAtUnixSeconds

```ts
readonly settledAtUnixSeconds: bigint | undefined;
```

Defined in: [packages/sage/src/loyalty/index.ts:87](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L87)

<a id="version-1"></a>

##### version

```ts
readonly version: number;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:86](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L86)

###### Inherited from

```ts
Omit.version
```

#### Methods

<a id="tojson-1"></a>

##### toJSON()

```ts
toJSON(): unknown;
```

Defined in: [packages/sage/src/loyalty/index.ts:88](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L88)

###### Returns

`unknown`

***

<a id="loyaltyepochsnapshot"></a>

### LoyaltyEpochSnapshot

Defined in: [packages/sage/src/loyalty/index.ts:56](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L56)

Immutable faction loyalty epoch with exact LP/ATLAS values.

#### Example

```ts
declare const epoch: LoyaltyEpochSnapshot;
console.log(epoch.faction.address, epoch.totalLpRaw);
```

#### Extends

- `Omit`\<`LoyaltyEpochAccountData`, `"game"` \| `"factionId"`\>

#### Properties

<a id="address-2"></a>

##### address

```ts
readonly address: Address;
```

Defined in: [packages/sage/src/loyalty/index.ts:61](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L61)

<a id="bump-2"></a>

##### bump

```ts
readonly bump: number;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:69](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L69)

###### Inherited from

```ts
Omit.bump
```

<a id="configversion"></a>

##### configVersion

```ts
readonly configVersion: number;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:74](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L74)

###### Inherited from

```ts
Omit.configVersion
```

<a id="endsatunixseconds"></a>

##### endsAtUnixSeconds

```ts
readonly endsAtUnixSeconds: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:77](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L77)

###### Inherited from

```ts
Omit.endsAtUnixSeconds
```

<a id="epochindex-1"></a>

##### epochIndex

```ts
readonly epochIndex: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:75](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L75)

###### Inherited from

```ts
Omit.epochIndex
```

<a id="faction-2"></a>

##### faction

```ts
readonly faction: EntityRef<"faction">;
```

Defined in: [packages/sage/src/loyalty/index.ts:64](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L64)

<a id="factionid-2"></a>

##### factionId

```ts
readonly factionId: number;
```

Defined in: [packages/sage/src/loyalty/index.ts:63](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L63)

<a id="game-2"></a>

##### game

```ts
readonly game: EntityRef<"game">;
```

Defined in: [packages/sage/src/loyalty/index.ts:62](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L62)

<a id="kind-2"></a>

##### kind

```ts
readonly kind: "loyaltyEpoch";
```

Defined in: [packages/sage/src/loyalty/index.ts:60](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L60)

<a id="kingsystems"></a>

##### kingSystems

```ts
readonly kingSystems: number;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:71](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L71)

###### Inherited from

```ts
Omit.kingSystems
```

<a id="poolatlasraw"></a>

##### poolAtlasRaw

```ts
readonly poolAtlasRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:80](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L80)

###### Inherited from

```ts
Omit.poolAtlasRaw
```

<a id="rewardconfig"></a>

##### rewardConfig

```ts
readonly rewardConfig: EntityRef<"atlasRewardConfig">;
```

Defined in: [packages/sage/src/loyalty/index.ts:65](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L65)

<a id="settledatlasraw"></a>

##### settledAtlasRaw

```ts
readonly settledAtlasRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:82](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L82)

###### Inherited from

```ts
Omit.settledAtlasRaw
```

<a id="settlementdeadlineunixseconds"></a>

##### settlementDeadlineUnixSeconds

```ts
readonly settlementDeadlineUnixSeconds: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:78](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L78)

###### Inherited from

```ts
Omit.settlementDeadlineUnixSeconds
```

<a id="startsatunixseconds"></a>

##### startsAtUnixSeconds

```ts
readonly startsAtUnixSeconds: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:76](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L76)

###### Inherited from

```ts
Omit.startsAtUnixSeconds
```

<a id="status"></a>

##### status

```ts
readonly status: LoyaltyEpochStatus;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:70](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L70)

###### Inherited from

```ts
Omit.status
```

<a id="totallpraw"></a>

##### totalLpRaw

```ts
readonly totalLpRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:79](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L79)

###### Inherited from

```ts
Omit.totalLpRaw
```

<a id="unsettledatlasraw"></a>

##### unsettledAtlasRaw

```ts
readonly unsettledAtlasRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:81](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L81)

###### Inherited from

```ts
Omit.unsettledAtlasRaw
```

<a id="version-2"></a>

##### version

```ts
readonly version: number;
```

Defined in: [packages/sage/src/internal/c4/loyalty.ts:68](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/loyalty.ts#L68)

###### Inherited from

```ts
Omit.version
```

#### Methods

<a id="tojson-2"></a>

##### toJSON()

```ts
toJSON(): unknown;
```

Defined in: [packages/sage/src/loyalty/index.ts:66](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L66)

###### Returns

`unknown`

## Type Aliases

<a id="loyaltyatlasbankstate"></a>

### LoyaltyAtlasBankState

```ts
type LoyaltyAtlasBankState = 
  | {
  kind: "empty";
}
  | {
  claimableAtlasRaw: bigint;
  kind: "claimable";
}
  | {
  claimableAtlasRaw: bigint;
  kind: "expired";
};
```

Defined in: [packages/sage/src/loyalty/index.ts:141](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L141)

Claimability state of one loyalty ATLAS bank.

#### Example

```ts
const state: LoyaltyAtlasBankState = { kind: 'empty' };
```

***

<a id="loyaltycontributionstate"></a>

### LoyaltyContributionState

```ts
type LoyaltyContributionState = 
  | {
  kind: "unsettled";
}
  | {
  kind: "settled";
  settledAtUnixSeconds: bigint;
}
  | {
  kind: "expired";
};
```

Defined in: [packages/sage/src/loyalty/index.ts:130](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L130)

Settlement state of one loyalty contribution.

#### Example

```ts
const state: LoyaltyContributionState = { kind: 'unsettled' };
```

***

<a id="loyaltydiscoveryoptions"></a>

### LoyaltyDiscoveryOptions

```ts
type LoyaltyDiscoveryOptions = Omit<DiscoveryRequest, "filters" | "strategy">;
```

Defined in: [packages/sage/src/loyalty/index.ts:44](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L44)

Options accepted by targeted loyalty reverse discovery.

#### Example

```ts
const options: LoyaltyDiscoveryOptions = { commitment: 'confirmed' };
```

***

<a id="loyaltyepochstate"></a>

### LoyaltyEpochState

```ts
type LoyaltyEpochState = 
  | {
  kind: "scheduled";
}
  | {
  kind: "open";
  remainingSeconds: bigint;
}
  | {
  kind: "settling";
  remainingSeconds: bigint;
}
  | {
  kind: "expired";
}
  | {
  kind: "swept";
};
```

Defined in: [packages/sage/src/loyalty/index.ts:117](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L117)

Time-projected lifecycle of one loyalty epoch.

#### Example

```ts
const state: LoyaltyEpochState = { kind: 'scheduled' };
```

## Functions

<a id="deriveloyaltyatlasbankstate"></a>

### deriveLoyaltyAtlasBankState()

```ts
function deriveLoyaltyAtlasBankState(bank, atUnixSeconds): LoyaltyAtlasBankState;
```

Defined in: [packages/sage/src/loyalty/index.ts:634](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L634)

Projects whether an accumulated ATLAS bank is empty, claimable, or expired.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `bank` | `Pick`\<[`LoyaltyAtlasBankSnapshot`](/reference/loyalty/#loyaltyatlasbanksnapshot), `"claimableAtlasRaw"` \| `"expiresAtUnixSeconds"`\> |
| `atUnixSeconds` | `bigint` |

#### Returns

[`LoyaltyAtlasBankState`](/reference/loyalty/#loyaltyatlasbankstate)

#### Example

```ts
declare const bank: LoyaltyAtlasBankSnapshot;
const state = deriveLoyaltyAtlasBankState(bank, 1_700_000_000n);
```

***

<a id="deriveloyaltycontributionstate"></a>

### deriveLoyaltyContributionState()

```ts
function deriveLoyaltyContributionState(
   contribution, 
   epoch, 
   atUnixSeconds): LoyaltyContributionState;
```

Defined in: [packages/sage/src/loyalty/index.ts:581](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L581)

Projects settlement or expiry for one contribution and matching epoch.
Unsettled contributions are expired as soon as their epoch is swept.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `contribution` | `Pick`\<[`LoyaltyContributionSnapshot`](/reference/loyalty/#loyaltycontributionsnapshot), `"settled"` \| `"settledAtUnixSeconds"` \| `"epoch"` \| `"factionId"` \| `"game"`\> |
| `epoch` | `Pick`\<[`LoyaltyEpochSnapshot`](/reference/loyalty/#loyaltyepochsnapshot), \| `"address"` \| `"factionId"` \| `"game"` \| `"status"` \| `"endsAtUnixSeconds"` \| `"settlementDeadlineUnixSeconds"`\> |
| `atUnixSeconds` | `bigint` |

#### Returns

[`LoyaltyContributionState`](/reference/loyalty/#loyaltycontributionstate)

#### Example

```ts
declare const contribution: LoyaltyContributionSnapshot;
declare const epoch: LoyaltyEpochSnapshot;
const state = deriveLoyaltyContributionState(contribution, epoch, 1_700_000_000n);
```

***

<a id="deriveloyaltyepochstate"></a>

### deriveLoyaltyEpochState()

```ts
function deriveLoyaltyEpochState(epoch, atUnixSeconds): LoyaltyEpochState;
```

Defined in: [packages/sage/src/loyalty/index.ts:541](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L541)

Projects a loyalty epoch at an explicit Unix timestamp.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `epoch` | `Pick`\<[`LoyaltyEpochSnapshot`](/reference/loyalty/#loyaltyepochsnapshot), \| `"status"` \| `"startsAtUnixSeconds"` \| `"endsAtUnixSeconds"` \| `"settlementDeadlineUnixSeconds"`\> |
| `atUnixSeconds` | `bigint` |

#### Returns

[`LoyaltyEpochState`](/reference/loyalty/#loyaltyepochstate)

#### Example

```ts
declare const epoch: LoyaltyEpochSnapshot;
const state = deriveLoyaltyEpochState(epoch, epoch.startsAtUnixSeconds);
```

***

<a id="getloyaltyatlasbank"></a>

### getLoyaltyAtlasBank()

```ts
function getLoyaltyAtlasBank(
   context, 
   profile, 
   factionId, 
options?): Promise<LoyaltyAtlasBankSnapshot>;
```

Defined in: [packages/sage/src/loyalty/index.ts:430](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L430)

Derives and reads a required Profile loyalty ATLAS bank.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `profile` | [`Address`](/reference/#address-20) |
| `factionId` | `number` |
| `options?` | [`ReadOptions`](/reference/client/#readoptions) |

#### Returns

`Promise`\<[`LoyaltyAtlasBankSnapshot`](/reference/loyalty/#loyaltyatlasbanksnapshot)\>

#### Example

```ts
declare const ctx: SageContext;
declare const profile: Address;
const bank = await getLoyaltyAtlasBank(ctx, profile, 3);
```

***

<a id="getloyaltyatlasbanksbyprofile"></a>

### getLoyaltyAtlasBanksByProfile()

```ts
function getLoyaltyAtlasBanksByProfile(
   context, 
   profile, 
options?): Promise<readonly LoyaltyAtlasBankSnapshot[]>;
```

Defined in: [packages/sage/src/loyalty/index.ts:516](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L516)

Discovers validated loyalty ATLAS banks for one Profile.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `profile` | [`Address`](/reference/#address-20) |
| `options?` | [`LoyaltyDiscoveryOptions`](/reference/loyalty/#loyaltydiscoveryoptions) |

#### Returns

`Promise`\<readonly [`LoyaltyAtlasBankSnapshot`](/reference/loyalty/#loyaltyatlasbanksnapshot)[]\>

#### Example

```ts
declare const ctx: SageContext;
declare const profile: Address;
const banks = await getLoyaltyAtlasBanksByProfile(ctx, profile);
```

***

<a id="getloyaltycontribution"></a>

### getLoyaltyContribution()

```ts
function getLoyaltyContribution(
   context, 
   profile, 
   factionId, 
   epochIndex, 
options?): Promise<LoyaltyContributionSnapshot>;
```

Defined in: [packages/sage/src/loyalty/index.ts:336](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L336)

Derives and reads one required Profile contribution.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `profile` | [`Address`](/reference/#address-20) |
| `factionId` | `number` |
| `epochIndex` | `bigint` |
| `options?` | [`ReadOptions`](/reference/client/#readoptions) |

#### Returns

`Promise`\<[`LoyaltyContributionSnapshot`](/reference/loyalty/#loyaltycontributionsnapshot)\>

#### Example

```ts
declare const ctx: SageContext;
declare const profile: Address;
const contribution = await getLoyaltyContribution(ctx, profile, 1, 20_668n);
```

***

<a id="getloyaltycontributionsbyprofile"></a>

### getLoyaltyContributionsByProfile()

```ts
function getLoyaltyContributionsByProfile(
   context, 
   profile, 
options?): Promise<readonly LoyaltyContributionSnapshot[]>;
```

Defined in: [packages/sage/src/loyalty/index.ts:490](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L490)

Discovers validated loyalty contributions for one Profile.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `profile` | [`Address`](/reference/#address-20) |
| `options?` | [`LoyaltyDiscoveryOptions`](/reference/loyalty/#loyaltydiscoveryoptions) |

#### Returns

`Promise`\<readonly [`LoyaltyContributionSnapshot`](/reference/loyalty/#loyaltycontributionsnapshot)[]\>

#### Example

```ts
declare const ctx: SageContext;
declare const profile: Address;
const contributions = await getLoyaltyContributionsByProfile(ctx, profile);
```

***

<a id="getloyaltyepoch"></a>

### getLoyaltyEpoch()

```ts
function getLoyaltyEpoch(
   context, 
   factionId, 
   epochIndex, 
options?): Promise<LoyaltyEpochSnapshot>;
```

Defined in: [packages/sage/src/loyalty/index.ts:311](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L311)

Derives and reads one required faction loyalty epoch.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `factionId` | `number` |
| `epochIndex` | `bigint` |
| `options?` | [`ReadOptions`](/reference/client/#readoptions) |

#### Returns

`Promise`\<[`LoyaltyEpochSnapshot`](/reference/loyalty/#loyaltyepochsnapshot)\>

#### Example

```ts
declare const ctx: SageContext;
const epoch = await getLoyaltyEpoch(ctx, 1, 20_665n);
```

***

<a id="getloyaltyepochsbyfaction"></a>

### getLoyaltyEpochsByFaction()

```ts
function getLoyaltyEpochsByFaction(
   context, 
   factionId, 
options?): Promise<readonly LoyaltyEpochSnapshot[]>;
```

Defined in: [packages/sage/src/loyalty/index.ts:464](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L464)

Discovers validated loyalty epochs for one faction.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `factionId` | `number` |
| `options?` | [`LoyaltyDiscoveryOptions`](/reference/loyalty/#loyaltydiscoveryoptions) |

#### Returns

`Promise`\<readonly [`LoyaltyEpochSnapshot`](/reference/loyalty/#loyaltyepochsnapshot)[]\>

#### Example

```ts
declare const ctx: SageContext;
const epochs = await getLoyaltyEpochsByFaction(ctx, 1);
```

***

<a id="maybegetloyaltyatlasbank"></a>

### maybeGetLoyaltyAtlasBank()

```ts
function maybeGetLoyaltyAtlasBank(
   context, 
   profile, 
   factionId, 
   options?): Promise<
  | LoyaltyAtlasBankSnapshot
| undefined>;
```

Defined in: [packages/sage/src/loyalty/index.ts:405](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L405)

Derives and reads an optional Profile loyalty ATLAS bank.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `profile` | [`Address`](/reference/#address-20) |
| `factionId` | `number` |
| `options?` | [`ReadOptions`](/reference/client/#readoptions) |

#### Returns

`Promise`\<
  \| [`LoyaltyAtlasBankSnapshot`](/reference/loyalty/#loyaltyatlasbanksnapshot)
  \| `undefined`\>

#### Example

```ts
declare const ctx: SageContext;
declare const profile: Address;
const bank = await maybeGetLoyaltyAtlasBank(ctx, profile, 3);
```
