# 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:93](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L93)

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:98](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L98)

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

##### bump

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

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

###### Inherited from

```ts
Omit.bump
```

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

##### claimableAtlasRaw

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

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

###### Inherited from

```ts
Omit.claimableAtlasRaw
```

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

##### expiresAtUnixSeconds

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

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

###### Inherited from

```ts
Omit.expiresAtUnixSeconds
```

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

##### faction

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

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="factionid"></a>

##### factionId

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

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

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

##### game

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

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

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

##### kind

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

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

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

##### lastCreditedAtUnixSeconds

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

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

###### Inherited from

```ts
Omit.lastCreditedAtUnixSeconds
```

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

##### lifetimeAtlasRaw

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

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

###### Inherited from

```ts
Omit.lifetimeAtlasRaw
```

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

##### lifetimeLpRaw

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

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

###### Inherited from

```ts
Omit.lifetimeLpRaw
```

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

##### profile

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

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

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

##### version

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

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

###### Inherited from

```ts
Omit.version
```

#### Methods

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

##### toJSON()

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

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

###### Returns

`unknown`

***

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

### LoyaltyContributionSnapshot

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

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:76](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L76)

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

##### atlasEntitlementRaw

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

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

###### Inherited from

```ts
Omit.atlasEntitlementRaw
```

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

##### bump

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

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

###### Inherited from

```ts
Omit.bump
```

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

##### epoch

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

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="epochindex"></a>

##### epochIndex

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

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

###### Inherited from

```ts
Omit.epochIndex
```

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

##### faction

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

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="factionid-1"></a>

##### factionId

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

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

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

##### game

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

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

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

##### kind

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

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

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

##### lpRaw

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

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

###### Inherited from

```ts
Omit.lpRaw
```

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

##### profile

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

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

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

##### settled

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

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

###### Inherited from

```ts
Omit.settled
```

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

##### settledAtUnixSeconds

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

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="version-1"></a>

##### version

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

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

###### Inherited from

```ts
Omit.version
```

#### Methods

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

##### toJSON()

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

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

###### Returns

`unknown`

***

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

### LoyaltyEpochSnapshot

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

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:56](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L56)

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

##### bump

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

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.bump
```

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

##### configVersion

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

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

###### Inherited from

```ts
Omit.configVersion
```

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

##### endsAtUnixSeconds

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

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

###### Inherited from

```ts
Omit.endsAtUnixSeconds
```

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

##### epochIndex

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

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

###### Inherited from

```ts
Omit.epochIndex
```

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

##### faction

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

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

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

##### factionId

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

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

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

##### game

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

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

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

##### kind

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

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

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

##### kingSystems

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

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

###### Inherited from

```ts
Omit.kingSystems
```

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

##### poolAtlasRaw

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

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

###### Inherited from

```ts
Omit.poolAtlasRaw
```

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

##### rewardConfig

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

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="settledatlasraw"></a>

##### settledAtlasRaw

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

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

###### Inherited from

```ts
Omit.settledAtlasRaw
```

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

##### settlementDeadlineUnixSeconds

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

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

###### Inherited from

```ts
Omit.settlementDeadlineUnixSeconds
```

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

##### startsAtUnixSeconds

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

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

###### Inherited from

```ts
Omit.startsAtUnixSeconds
```

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

##### status

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

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.status
```

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

##### totalLpRaw

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

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

###### Inherited from

```ts
Omit.totalLpRaw
```

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

##### unsettledAtlasRaw

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

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

###### Inherited from

```ts
Omit.unsettledAtlasRaw
```

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

##### version

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

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.version
```

#### Methods

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

##### toJSON()

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

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

###### 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:136](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L136)

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:125](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L125)

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:39](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L39)

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:112](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L112)

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:641](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L641)

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:588](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L588)

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:548](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L548)

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:437](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L437)

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:523](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L523)

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:343](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L343)

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:497](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L497)

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:318](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L318)

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:471](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L471)

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:412](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/loyalty/index.ts#L412)

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);
```
