# identity
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/identity/ — see https://develop.atlas-kit-docs.pages.dev/ai/ for the full machine-readable surface.

## Interfaces

<a id="characteraccountdata"></a>

### CharacterAccountData

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

SDK-owned decoded Character data.

#### Example

```ts
declare const character: CharacterAccountData;
const atlas = character.atlas;
```

#### Properties

<a id="atlas"></a>

##### atlas

```ts
readonly atlas: number;
```

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

<a id="atlasraw"></a>

##### atlasRaw

```ts
readonly atlasRaw: bigint;
```

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

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

##### bump

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

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

<a id="checkin"></a>

##### checkIn

```ts
readonly checkIn: {
  lastCheckInTime: bigint;
  streak: number;
};
```

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

###### lastCheckInTime

```ts
readonly lastCheckInTime: bigint;
```

###### streak

```ts
readonly streak: number;
```

<a id="counts"></a>

##### counts

```ts
readonly counts: {
  claimStakes: number;
  craftingHabs: number;
  fleets: number;
};
```

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

###### claimStakes

```ts
readonly claimStakes: number;
```

###### craftingHabs

```ts
readonly craftingHabs: number;
```

###### fleets

```ts
readonly fleets: number;
```

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

##### game

```ts
readonly game: Address;
```

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

<a id="modifiers"></a>

##### modifiers

```ts
readonly modifiers: CharacterModifiersData;
```

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

<a id="pilotxpbudget"></a>

##### pilotXpBudget

```ts
readonly pilotXpBudget: {
  available: number;
  fractionalCarry: number;
  fractionalCarryRaw: bigint;
  lastAccrualTime: bigint;
};
```

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

###### available

```ts
readonly available: number;
```

###### fractionalCarry

```ts
readonly fractionalCarry: number;
```

###### fractionalCarryRaw

```ts
readonly fractionalCarryRaw: bigint;
```

###### lastAccrualTime

```ts
readonly lastAccrualTime: bigint;
```

<a id="playerprofile"></a>

##### playerProfile

```ts
readonly playerProfile: Address;
```

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

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

##### version

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

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

<a id="xp"></a>

##### xp

```ts
readonly xp: CharacterXpData;
```

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

***

<a id="charactermodifierdata"></a>

### CharacterModifierData

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

SDK-owned translation of Character modifier values.

#### Example

```ts
declare const modifiers: CharacterModifierData;
const shipCapacityPerFleet = modifiers.fleetSize;
const maximumFleetCount = modifiers.fleetConcurrency;
```

#### Properties

<a id="cargocategories"></a>

##### cargoCategories

```ts
readonly cargoCategories: readonly number[];
```

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

<a id="craftingefficiencymodifier"></a>

##### craftingEfficiencyModifier

```ts
readonly craftingEfficiencyModifier: number;
```

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

<a id="craftingefficiencymodifierraw"></a>

##### craftingEfficiencyModifierRaw

```ts
readonly craftingEfficiencyModifierRaw: bigint;
```

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

<a id="craftingjobconcurrencybonus"></a>

##### craftingJobConcurrencyBonus

```ts
readonly craftingJobConcurrencyBonus: number;
```

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

<a id="craftingtimemodifier"></a>

##### craftingTimeModifier

```ts
readonly craftingTimeModifier: number;
```

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

<a id="craftingtimemodifierraw"></a>

##### craftingTimeModifierRaw

```ts
readonly craftingTimeModifierRaw: bigint;
```

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

<a id="enemyfactionzoneaccess"></a>

##### enemyFactionZoneAccess

```ts
readonly enemyFactionZoneAccess: boolean;
```

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

<a id="fleetconcurrency"></a>

##### fleetConcurrency

```ts
readonly fleetConcurrency: number;
```

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

<a id="fleetsize"></a>

##### fleetSize

```ts
readonly fleetSize: number;
```

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

<a id="maxdailystreaklength"></a>

##### maxDailyStreakLength

```ts
readonly maxDailyStreakLength: number;
```

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

<a id="maxproductiveplots"></a>

##### maxProductivePlots

```ts
readonly maxProductivePlots: number;
```

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

<a id="maxproductiveplottier"></a>

##### maxProductivePlotTier?

```ts
readonly optional maxProductivePlotTier?: 1 | 5 | 2 | 4 | 3;
```

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

<a id="maxresidentialplots"></a>

##### maxResidentialPlots

```ts
readonly maxResidentialPlots: number;
```

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

<a id="maxresidentialplottier"></a>

##### maxResidentialPlotTier?

```ts
readonly optional maxResidentialPlotTier?: 1 | 5 | 2 | 4 | 3;
```

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

<a id="maxshipsize"></a>

##### maxShipSize

```ts
readonly maxShipSize: ShipSize;
```

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

<a id="raremineraldiscovery"></a>

##### rareMineralDiscovery

```ts
readonly rareMineralDiscovery: readonly RareMineralDiscoveryData[];
```

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

<a id="researchtags"></a>

##### researchTags

```ts
readonly researchTags: readonly number[];
```

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

<a id="respawntimemodifier"></a>

##### respawnTimeModifier

```ts
readonly respawnTimeModifier: number;
```

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

<a id="respawntimemodifierraw"></a>

##### respawnTimeModifierRaw

```ts
readonly respawnTimeModifierRaw: bigint;
```

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

<a id="scancooldownmodifier"></a>

##### scanCoolDownModifier

```ts
readonly scanCoolDownModifier: number;
```

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

<a id="scancooldownmodifierraw"></a>

##### scanCoolDownModifierRaw

```ts
readonly scanCoolDownModifierRaw: bigint;
```

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

<a id="scanpowermodifier"></a>

##### scanPowerModifier

```ts
readonly scanPowerModifier: number;
```

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

<a id="scanpowermodifierraw"></a>

##### scanPowerModifierRaw

```ts
readonly scanPowerModifierRaw: bigint;
```

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

<a id="securityzoneaccess"></a>

##### securityZoneAccess

```ts
readonly securityZoneAccess: RiskZoneAccess;
```

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

<a id="subwarpspeedmodifier"></a>

##### subwarpSpeedModifier

```ts
readonly subwarpSpeedModifier: number;
```

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

<a id="subwarpspeedmodifierraw"></a>

##### subwarpSpeedModifierRaw

```ts
readonly subwarpSpeedModifierRaw: bigint;
```

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

<a id="warpcooldownmodifier"></a>

##### warpCooldownModifier

```ts
readonly warpCooldownModifier: number;
```

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

<a id="warpcooldownmodifierraw"></a>

##### warpCooldownModifierRaw

```ts
readonly warpCooldownModifierRaw: bigint;
```

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

<a id="warplanefeemodifier"></a>

##### warpLaneFeeModifier

```ts
readonly warpLaneFeeModifier: number;
```

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

<a id="warplanefeemodifierraw"></a>

##### warpLaneFeeModifierRaw

```ts
readonly warpLaneFeeModifierRaw: bigint;
```

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

<a id="warpspeedmodifier"></a>

##### warpSpeedModifier

```ts
readonly warpSpeedModifier: number;
```

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

<a id="warpspeedmodifierraw"></a>

##### warpSpeedModifierRaw

```ts
readonly warpSpeedModifierRaw: bigint;
```

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

***

<a id="charactermodifiersdata"></a>

### CharacterModifiersData

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

SDK-owned Character modifier state from the Character account.

#### Example

```ts
declare const modifiers: CharacterModifiersData;
const nodes = modifiers.unlockedNodes;
```

#### Properties

<a id="nodelevels"></a>

##### nodeLevels

```ts
readonly nodeLevels: readonly {
  level: number;
  nodeId: number;
}[];
```

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

<a id="seqid"></a>

##### seqId

```ts
readonly seqId: number;
```

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

<a id="unlockednodes"></a>

##### unlockedNodes

```ts
readonly unlockedNodes: readonly number[];
```

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

<a id="unupdatedcount"></a>

##### unupdatedCount

```ts
readonly unupdatedCount: number;
```

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

<a id="values"></a>

##### values

```ts
readonly values: CharacterModifierData;
```

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

***

<a id="characterprogressionsnapshot"></a>

### CharacterProgressionSnapshot

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

Character XP and pilot state joined to sequence-matched Game XP rules.

#### Example

```ts
declare const ctx: SageContext;
declare const profileAddress: Address;
const progression: CharacterProgressionSnapshot =
  await getCharacterProgressionForProfile(ctx, profileAddress);
console.log(progression.xp.pilot.level);
```

#### Properties

<a id="character"></a>

##### character

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

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

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

##### kind

```ts
readonly kind: "characterProgression";
```

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

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

##### pilotXpBudget

```ts
readonly pilotXpBudget: {
  available: number;
  fractionalCarry: number;
  fractionalCarryRaw: bigint;
  lastAccrualTime: bigint;
};
```

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

###### available

```ts
readonly available: number;
```

###### fractionalCarry

```ts
readonly fractionalCarry: number;
```

###### fractionalCarryRaw

```ts
readonly fractionalCarryRaw: bigint;
```

###### lastAccrualTime

```ts
readonly lastAccrualTime: bigint;
```

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

##### xp

```ts
readonly xp: CharacterXpData;
```

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

<a id="xpdefinitions"></a>

##### xpDefinitions

```ts
readonly xpDefinitions: GameXpDefinitionsSectionData;
```

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

#### Methods

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

##### toJSON()

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

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

###### Returns

`unknown`

***

<a id="characterresearchstate"></a>

### CharacterResearchState

Defined in: [packages/sage/src/identity/research-state.ts:22](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/research-state.ts#L22)

Display balances derived from one Character, not research purchase eligibility.
Sequences describe the input; no current Game definitions are consulted.

#### Example

```ts
declare const state: CharacterResearchState;
console.log(state.careers.mining.researchPointsAvailable, state.renown.available);
```

#### Properties

<a id="careers"></a>

##### careers

```ts
readonly careers: Readonly<Record<typeof careers[number], {
  earnedXp: bigint;
  level: number;
  researchPointsAvailable: bigint;
  researchPointsSpent: bigint;
}>>;
```

Defined in: [packages/sage/src/identity/research-state.ts:27](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/research-state.ts#L27)

<a id="characteraddress"></a>

##### characterAddress

```ts
readonly characterAddress: Address;
```

Defined in: [packages/sage/src/identity/research-state.ts:23](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/research-state.ts#L23)

<a id="nodes"></a>

##### nodes

```ts
readonly nodes: readonly {
  level: number;
  nodeId: number;
}[];
```

Defined in: [packages/sage/src/identity/research-state.ts:48](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/research-state.ts#L48)

Acquired nodes only. Stored levels are reported as-is, including 0;
only a missing entry defaults to 1. This preserves observed state rather
than applying the official client's minimum-1 sync-step estimate.

<a id="pendingnodeupdates"></a>

##### pendingNodeUpdates

```ts
readonly pendingNodeUpdates: number;
```

Defined in: [packages/sage/src/identity/research-state.ts:26](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/research-state.ts#L26)

<a id="renown"></a>

##### renown

```ts
readonly renown: {
  available: bigint;
  careerLevelCarry: number;
  earned: bigint;
  level: number;
  spent: bigint;
};
```

Defined in: [packages/sage/src/identity/research-state.ts:38](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/research-state.ts#L38)

###### available

```ts
readonly available: bigint;
```

###### careerLevelCarry

```ts
readonly careerLevelCarry: number;
```

###### earned

```ts
readonly earned: bigint;
```

###### level

```ts
readonly level: number;
```

###### spent

```ts
readonly spent: bigint;
```

<a id="researchsequenceid"></a>

##### researchSequenceId

```ts
readonly researchSequenceId: number;
```

Defined in: [packages/sage/src/identity/research-state.ts:25](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/research-state.ts#L25)

<a id="xpsequenceid"></a>

##### xpSequenceId

```ts
readonly xpSequenceId: number;
```

Defined in: [packages/sage/src/identity/research-state.ts:24](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/research-state.ts#L24)

#### Methods

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

##### toJSON()

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

Defined in: [packages/sage/src/identity/research-state.ts:52](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/research-state.ts#L52)

###### Returns

`unknown`

***

<a id="charactersnapshot"></a>

### CharacterSnapshot

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

Immutable Character snapshot derived from a Player Profile and Game.

#### Example

```ts
declare const ctx: SageContext;
declare const profileAddress: Address;
const character: CharacterSnapshot = await getCharacterForProfile(ctx, profileAddress);
console.log(character.profile.address);
```

#### Extends

- `Omit`\<[`CharacterAccountData`](/reference/identity/#characteraccountdata), `"playerProfile"`\>

#### Extended by

- [`CharacterView`](/reference/#characterview)

#### Properties

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

##### address

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

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

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

##### atlas

```ts
readonly atlas: number;
```

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

###### Inherited from

[`CharacterAccountData`](/reference/identity/#characteraccountdata).[`atlas`](/reference/identity/#characteraccountdata)

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

##### atlasRaw

```ts
readonly atlasRaw: bigint;
```

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

###### Inherited from

[`CharacterAccountData`](/reference/identity/#characteraccountdata).[`atlasRaw`](/reference/identity/#characteraccountdata)

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

##### bump

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

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

###### Inherited from

[`CharacterAccountData`](/reference/identity/#characteraccountdata).[`bump`](/reference/identity/#characteraccountdata)

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

##### checkIn

```ts
readonly checkIn: {
  lastCheckInTime: bigint;
  streak: number;
};
```

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

###### lastCheckInTime

```ts
readonly lastCheckInTime: bigint;
```

###### streak

```ts
readonly streak: number;
```

###### Inherited from

[`CharacterAccountData`](/reference/identity/#characteraccountdata).[`checkIn`](/reference/identity/#characteraccountdata)

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

##### counts

```ts
readonly counts: {
  claimStakes: number;
  craftingHabs: number;
  fleets: number;
};
```

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

###### claimStakes

```ts
readonly claimStakes: number;
```

###### craftingHabs

```ts
readonly craftingHabs: number;
```

###### fleets

```ts
readonly fleets: number;
```

###### Inherited from

[`CharacterAccountData`](/reference/identity/#characteraccountdata).[`counts`](/reference/identity/#characteraccountdata)

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

##### game

```ts
readonly game: Address;
```

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

###### Inherited from

[`CharacterAccountData`](/reference/identity/#characteraccountdata).[`game`](/reference/identity/#characteraccountdata)

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

##### kind

```ts
readonly kind: "character";
```

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

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

##### modifiers

```ts
readonly modifiers: CharacterModifiersData;
```

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

###### Inherited from

[`CharacterAccountData`](/reference/identity/#characteraccountdata).[`modifiers`](/reference/identity/#characteraccountdata)

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

##### pilotXpBudget

```ts
readonly pilotXpBudget: {
  available: number;
  fractionalCarry: number;
  fractionalCarryRaw: bigint;
  lastAccrualTime: bigint;
};
```

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

###### available

```ts
readonly available: number;
```

###### fractionalCarry

```ts
readonly fractionalCarry: number;
```

###### fractionalCarryRaw

```ts
readonly fractionalCarryRaw: bigint;
```

###### lastAccrualTime

```ts
readonly lastAccrualTime: bigint;
```

###### Inherited from

[`CharacterAccountData`](/reference/identity/#characteraccountdata).[`pilotXpBudget`](/reference/identity/#characteraccountdata)

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

##### profile

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

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

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

##### version

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

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

###### Inherited from

[`CharacterAccountData`](/reference/identity/#characteraccountdata).[`version`](/reference/identity/#characteraccountdata)

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

##### xp

```ts
readonly xp: CharacterXpData;
```

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

###### Inherited from

[`CharacterAccountData`](/reference/identity/#characteraccountdata).[`xp`](/reference/identity/#characteraccountdata)

#### Methods

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

##### toJSON()

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

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

###### Returns

`unknown`

***

<a id="characterxpcategorydata"></a>

### CharacterXpCategoryData

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

SDK-owned XP values for one Character category.

#### Example

```ts
declare const category: CharacterXpCategoryData;
const level = category.level;
```

#### Properties

<a id="earned"></a>

##### earned

```ts
readonly earned: bigint;
```

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

<a id="level"></a>

##### level

```ts
readonly level: number;
```

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

<a id="spent"></a>

##### spent

```ts
readonly spent: bigint;
```

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

***

<a id="characterxpdata"></a>

### CharacterXpData

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

SDK-owned Character XP state.

#### Example

```ts
declare const xp: CharacterXpData;
const pilotLevel = xp.pilot.level;
```

#### Properties

<a id="building"></a>

##### building

```ts
readonly building: CharacterXpCategoryData;
```

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

<a id="combat"></a>

##### combat

```ts
readonly combat: CharacterXpCategoryData;
```

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

<a id="councilrank"></a>

##### councilRank

```ts
readonly councilRank: CharacterXpCategoryData;
```

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

<a id="councilranklevelcarry"></a>

##### councilRankLevelCarry

```ts
readonly councilRankLevelCarry: number;
```

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

<a id="crafting"></a>

##### crafting

```ts
readonly crafting: CharacterXpCategoryData;
```

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

<a id="dailyxp"></a>

##### dailyXp

```ts
readonly dailyXp: CharacterXpCategoryData;
```

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

<a id="datarunner"></a>

##### dataRunner

```ts
readonly dataRunner: CharacterXpCategoryData;
```

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

<a id="mining"></a>

##### mining

```ts
readonly mining: CharacterXpCategoryData;
```

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

<a id="pilot"></a>

##### pilot

```ts
readonly pilot: CharacterXpCategoryData;
```

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

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

##### seqId

```ts
readonly seqId: number;
```

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

***

<a id="profileaccountdata"></a>

### ProfileAccountData

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

SDK-owned decoded Player Profile data.

#### Example

```ts
declare const profile: ProfileAccountData;
const keys = profile.keys;
```

#### Extended by

- [`ProfileSnapshot`](/reference/identity/#profilesnapshot)

#### Properties

<a id="authkeycount"></a>

##### authKeyCount

```ts
readonly authKeyCount: number;
```

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

<a id="createdat"></a>

##### createdAt

```ts
readonly createdAt: bigint;
```

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

<a id="keys"></a>

##### keys

```ts
readonly keys: readonly ProfileKeyData[];
```

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

<a id="keythreshold"></a>

##### keyThreshold

```ts
readonly keyThreshold: number;
```

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

<a id="nextseqid"></a>

##### nextSeqId

```ts
readonly nextSeqId: bigint;
```

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

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

##### version

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

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

***

<a id="profilekeydata"></a>

### ProfileKeyData

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

SDK-owned representation of one Player Profile key.

#### Example

```ts
declare const key: ProfileKeyData;
const expiresAt = key.expiresAt;
```

#### Properties

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

##### address

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

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

<a id="expiresat"></a>

##### expiresAt?

```ts
readonly optional expiresAt?: bigint;
```

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

<a id="expiresatraw"></a>

##### expiresAtRaw

```ts
readonly expiresAtRaw: bigint;
```

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

<a id="permissions"></a>

##### permissions

```ts
readonly permissions: readonly ProfilePermission[];
```

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

<a id="permissionsraw"></a>

##### permissionsRaw

```ts
readonly permissionsRaw: bigint;
```

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

<a id="scope"></a>

##### scope

```ts
readonly scope: Address;
```

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

***

<a id="profilekeyinspection"></a>

### ProfileKeyInspection

Defined in: [packages/sage/src/identity/permissions.ts:194](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L194)

Immutable diagnostics for one original Profile key, never a selected authority.
A match is advisory, not chain authorization; unknown requirements are indeterminate.

#### Example

```ts
declare const candidate: ProfileKeyInspection;
console.log(candidate.keyIndex, candidate.status, candidate.diagnostics);
```

#### Properties

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

##### address

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

Defined in: [packages/sage/src/identity/permissions.ts:196](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L196)

<a id="diagnostics"></a>

##### diagnostics

```ts
readonly diagnostics: readonly ProfileKeyDiagnostic[];
```

Defined in: [packages/sage/src/identity/permissions.ts:203](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L203)

<a id="expired"></a>

##### expired

```ts
readonly expired: boolean;
```

Defined in: [packages/sage/src/identity/permissions.ts:202](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L202)

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

##### expiresAt?

```ts
readonly optional expiresAt?: bigint;
```

Defined in: [packages/sage/src/identity/permissions.ts:201](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L201)

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

##### expiresAtRaw

```ts
readonly expiresAtRaw: bigint;
```

Defined in: [packages/sage/src/identity/permissions.ts:200](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L200)

<a id="isprofileauthority"></a>

##### isProfileAuthority

```ts
readonly isProfileAuthority: boolean;
```

Defined in: [packages/sage/src/identity/permissions.ts:199](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L199)

<a id="keyindex"></a>

##### keyIndex

```ts
readonly keyIndex: number;
```

Defined in: [packages/sage/src/identity/permissions.ts:195](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L195)

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

##### permissionsRaw

```ts
readonly permissionsRaw: bigint;
```

Defined in: [packages/sage/src/identity/permissions.ts:198](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L198)

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

##### scope

```ts
readonly scope: Address;
```

Defined in: [packages/sage/src/identity/permissions.ts:197](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L197)

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

##### status

```ts
readonly status: "match" | "mismatch" | "indeterminate";
```

Defined in: [packages/sage/src/identity/permissions.ts:204](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L204)

#### Methods

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

##### toJSON()

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

Defined in: [packages/sage/src/identity/permissions.ts:205](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L205)

###### Returns

`unknown`

***

<a id="profilekeyrequirement"></a>

### ProfileKeyRequirement

Defined in: [packages/sage/src/identity/permissions.ts:168](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L168)

Explicit direct-key requirement evaluated only at the caller's supplied time.

#### Example

```ts
declare const signer: Address;
const requirement: ProfileKeyRequirement = {signer, scope: PROFILE_PERMISSION_SCOPE, permissionsRaw: 4n, at: 100n};
```

#### Properties

<a id="at"></a>

##### at

```ts
readonly at: bigint;
```

Defined in: [packages/sage/src/identity/permissions.ts:172](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L172)

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

##### permissionsRaw

```ts
readonly permissionsRaw: bigint;
```

Defined in: [packages/sage/src/identity/permissions.ts:171](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L171)

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

##### scope

```ts
readonly scope: Address;
```

Defined in: [packages/sage/src/identity/permissions.ts:170](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L170)

<a id="signer"></a>

##### signer

```ts
readonly signer: Address;
```

Defined in: [packages/sage/src/identity/permissions.ts:169](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L169)

***

<a id="profilepermissioninspection"></a>

### ProfilePermissionInspection

Defined in: [packages/sage/src/identity/permissions.ts:129](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L129)

Immutable scoped permission meanings with all raw bits retained.

#### Example

```ts
const inspection: ProfilePermissionInspection = inspectProfilePermissions(PROFILE_PERMISSION_SCOPE, 1n);
```

#### Properties

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

##### permissions

```ts
readonly permissions: readonly ProfilePermission[];
```

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

<a id="permissionsraw-3"></a>

##### permissionsRaw

```ts
readonly permissionsRaw: bigint;
```

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

<a id="scope-3"></a>

##### scope

```ts
readonly scope: Address;
```

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

<a id="unrecognizedbitsraw"></a>

##### unrecognizedBitsRaw

```ts
readonly unrecognizedBitsRaw: bigint;
```

Defined in: [packages/sage/src/identity/permissions.ts:133](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L133)

#### Methods

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

##### toJSON()

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

Defined in: [packages/sage/src/identity/permissions.ts:134](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L134)

###### Returns

`unknown`

***

<a id="profilesnapshot"></a>

### ProfileSnapshot

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

Immutable, translated Player Profile snapshot.

#### Example

```ts
declare const ctx: SageContext;
declare const profileAddress: Address;
const profile: ProfileSnapshot = await getProfile(ctx, profileAddress);
console.log(profile.address, profile.keys.length);
```

#### Extends

- [`ProfileAccountData`](/reference/identity/#profileaccountdata)

#### Extended by

- [`ProfileView`](/reference/#profileview)

#### Properties

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

##### address

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

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

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

##### authKeyCount

```ts
readonly authKeyCount: number;
```

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

###### Inherited from

[`ProfileAccountData`](/reference/identity/#profileaccountdata).[`authKeyCount`](/reference/identity/#profileaccountdata)

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

##### createdAt

```ts
readonly createdAt: bigint;
```

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

###### Inherited from

[`ProfileAccountData`](/reference/identity/#profileaccountdata).[`createdAt`](/reference/identity/#profileaccountdata)

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

##### keys

```ts
readonly keys: readonly ProfileKeyData[];
```

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

###### Inherited from

[`ProfileAccountData`](/reference/identity/#profileaccountdata).[`keys`](/reference/identity/#profileaccountdata)

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

##### keyThreshold

```ts
readonly keyThreshold: number;
```

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

###### Inherited from

[`ProfileAccountData`](/reference/identity/#profileaccountdata).[`keyThreshold`](/reference/identity/#profileaccountdata)

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

##### kind

```ts
readonly kind: "profile";
```

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

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

##### nextSeqId

```ts
readonly nextSeqId: bigint;
```

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

###### Inherited from

[`ProfileAccountData`](/reference/identity/#profileaccountdata).[`nextSeqId`](/reference/identity/#profileaccountdata)

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

##### version

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

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

###### Inherited from

[`ProfileAccountData`](/reference/identity/#profileaccountdata).[`version`](/reference/identity/#profileaccountdata)

#### Methods

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

##### toJSON()

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

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

###### Returns

`unknown`

***

<a id="raremineraldiscoverydata"></a>

### RareMineralDiscoveryData

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

One translated cargo-specific research modifier.

#### Example

```ts
declare const discovery: RareMineralDiscoveryData;
const multiplier = discovery.multiplier;
```

#### Properties

<a id="cargoid"></a>

##### cargoId

```ts
readonly cargoId: number;
```

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

<a id="multiplier"></a>

##### multiplier

```ts
readonly multiplier: number;
```

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

<a id="multiplierraw"></a>

##### multiplierRaw

```ts
readonly multiplierRaw: bigint;
```

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

***

<a id="researchcatalogsnapshot"></a>

### ResearchCatalogSnapshot

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

Independent Game research catalog without Character perk or unlock claims.

#### Example

```ts
declare const ctx: SageContext;
const catalog: ResearchCatalogSnapshot = await getResearchCatalog(ctx);
console.log(catalog.nodes.length);
```

#### Properties

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

##### game

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

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

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

##### kind

```ts
readonly kind: "researchCatalog";
```

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

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

##### nodes

```ts
readonly nodes: readonly GameResearchNodeData[];
```

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

<a id="sequenceid"></a>

##### sequenceId

```ts
readonly sequenceId: number;
```

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

#### Methods

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

##### toJSON()

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

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

###### Returns

`unknown`

## Type Aliases

<a id="profilekeydiagnostic"></a>

### ProfileKeyDiagnostic

```ts
type ProfileKeyDiagnostic = 
  | "address-mismatch"
  | "scope-mismatch"
  | "expired"
  | "missing-permissions"
  | "unrecognized-permissions";
```

Defined in: [packages/sage/src/identity/permissions.ts:180](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L180)

Reasons an inspected entry does not prove a direct scoped snapshot match.

#### Example

```ts
const diagnostic: ProfileKeyDiagnostic = 'scope-mismatch';
```

***

<a id="profilepermission"></a>

### ProfilePermission

```ts
type ProfilePermission = 
  | "authenticate"
  | "addKeys"
  | "removeKeys"
  | "changeName"
  | "createRole"
  | "removeRole"
  | "setAuthorizer"
  | "joinRole"
  | "leaveRole"
  | "toggleAcceptingNewMembers"
  | "addMember"
  | "removeMember"
  | "drainSolVault"
  | "manageGame"
  | "manageSystem"
  | "manageStar"
  | "managePlanet"
  | "manageShip"
  | "manageCharacter"
  | "manageStarbase"
  | "manageMineItem"
  | "manageResource"
  | "removeShipEscrow"
  | "moveFleet"
  | "undock"
  | "dock"
  | "rentFleet"
  | "doCrafting"
  | "manageCargoPod"
  | "addRemoveCargo"
  | "doStarbaseUpgrades"
  | "manageFleet"
  | "manageFleetCargo"
  | "doMining"
  | "respawn"
  | "manageSurveyDataUnit"
  | "scanSurveyDataUnit"
  | "doStarbaseUpkeep"
  | "manageProgression"
  | "manageCrewConfig"
  | "manageCrew"
  | "withdrawCrew"
  | "manageRegion"
  | "manageCargo"
  | "manageClaimStakeConfig"
  | "manageCombat"
  | "manageClaimStake"
  | "manageCrafting"
  | "engageInCombat"
  | "repair"
  | "manageScanning"
  | "scan"
  | "manageLocalMarketOrders"
  | "doResearch"
  | "dailyCheckIn"
  | "manageCurrency"
  | "manageMissions"
  | "doGovernance"
  | "manageMissionTreasuries";
```

Defined in: [packages/sage/src/internal/c4/profile-permissions.ts:16](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/profile-permissions.ts#L16)

Stable labels for recognized scoped permissions carried by Profile keys.
Profile and SAGE meanings require their exact supported program scope.

#### Example

```ts
const permission: ProfilePermission = 'authenticate';
```

***

<a id="researchnodedefinition"></a>

### ResearchNodeDefinition

```ts
type ResearchNodeDefinition = GameResearchNodeData;
```

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

One Game research node definition with no claimed player unlock state.

#### Example

```ts
declare const node: ResearchNodeDefinition;
console.log(node.name, node.maxLevel);
```

***

<a id="riskzoneaccess"></a>

### RiskZoneAccess

```ts
type RiskZoneAccess = "low" | "medium" | "high";
```

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

Stable risk-zone labels translated from generated numeric enums.

#### Example

```ts
const access: RiskZoneAccess = 'low';
```

***

<a id="shipsize"></a>

### ShipSize

```ts
type ShipSize = 
  | "xx-small"
  | "x-small"
  | "small"
  | "medium"
  | "large"
  | "capital"
  | "commander"
  | "titan";
```

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

Stable ship-size labels translated from generated numeric enums.

#### Example

```ts
const size: ShipSize = 'medium';
```

***

<a id="walletprofilediscoveryoptions"></a>

### WalletProfileDiscoveryOptions

```ts
type WalletProfileDiscoveryOptions = 
  | Omit<ReadOptions, "maxAgeMs" | "refresh"> & {
  addresses: readonly Address[];
  strategy: "known-addresses";
}
  | Omit<ReadOptions, "maxAgeMs" | "refresh"> & {
  addresses?: never;
  strategy: "provider";
};
```

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

Explicit strategy and read controls for wallet-to-Profile discovery.

Known addresses and provider hints follow the same direct on-chain
validation path. The strategy is required so callers never mistake a known
application mapping for provider discovery.

#### Example

```ts
declare const profileAddress: Address;
const options: WalletProfileDiscoveryOptions = {
  strategy: 'known-addresses',
  addresses: [profileAddress],
};
```

***

<a id="xpcategory"></a>

### XpCategory

```ts
type XpCategory = GameXpCategory;
```

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

Stable gameplay label for one Game XP category.

#### Example

```ts
const category: XpCategory = 'pilot';
```

***

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

### XpDefinitions

```ts
type XpDefinitions = GameXpDefinitionsSectionData;
```

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

Sequence-versioned Game XP rules joined to Character XP.

#### Example

```ts
declare const definitions: XpDefinitions;
console.log(definitions.sequenceId);
```

***

<a id="xplevelthreshold"></a>

### XpLevelThreshold

```ts
type XpLevelThreshold = GameXpLevelThresholdData;
```

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

Exact XP thresholds for one level across every category.

#### Example

```ts
declare const threshold: XpLevelThreshold;
console.log(threshold.pilot);
```

## Variables

<a id="profile_permission_scope"></a>

### PROFILE\_PERMISSION\_SCOPE

```ts
const PROFILE_PERMISSION_SCOPE: Address = PROFILE_SCOPE;
```

Defined in: [packages/sage/src/identity/permissions.ts:19](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L19)

Pinned supported Player Profile program scope, where bit zero means AUTH.

#### Example

```ts
const mask = composeProfilePermissions(PROFILE_PERMISSION_SCOPE, ['authenticate']);
```

***

<a id="sage_permission_scope"></a>

### SAGE\_PERMISSION\_SCOPE

```ts
const SAGE_PERMISSION_SCOPE: Address = SAGE_SCOPE;
```

Defined in: [packages/sage/src/identity/permissions.ts:28](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L28)

Pinned supported SAGE program scope, where bit zero means manageGame.
Recognized names describe bits, not complete action authorization policies.

#### Example

```ts
const mask = composeProfilePermissions(SAGE_PERMISSION_SCOPE, ['moveFleet']);
```

## Functions

<a id="composeprofilepermissions"></a>

### composeProfilePermissions()

```ts
function composeProfilePermissions(scope, names): bigint;
```

Defined in: [packages/sage/src/identity/permissions.ts:67](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L67)

Compose only verified names under an explicit scope. Empty input returns zero.
Profile and SAGE names require their exact supported program scope;
drainSolVault is recognized across scopes. Names identify verified bits, not
complete action authorization policies. No default authority mask is added.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `scope` | `Address` |
| `names` | readonly [`ProfilePermission`](/reference/identity/#profilepermission)[] |

#### Returns

`bigint`

#### Example

```ts
const raw = composeProfilePermissions(PROFILE_PERMISSION_SCOPE, ['addKeys', 'removeKeys']);
```

***

<a id="containsprofilepermissions"></a>

### containsProfilePermissions()

```ts
function containsProfilePermissions(availableRaw, requiredRaw): boolean;
```

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

Numeric bit containment only, including unknown bits; this is not authorization.
Callers must track the scope each mask belongs to; this pure bit operation
neither checks scope compatibility nor interprets permission meanings.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `availableRaw` | `bigint` |
| `requiredRaw` | `bigint` |

#### Returns

`boolean`

#### Example

```ts
const contains = containsProfilePermissions(6n, 4n);
```

***

<a id="derivecharacterresearchstate"></a>

### deriveCharacterResearchState()

```ts
function deriveCharacterResearchState(character): CharacterResearchState;
```

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

Projects stored XP, career research points, Renown and acquired nodes without
I/O, mutation, or a separate cache. Career points use level minus spent;
Renown uses earned minus spent. Daily XP is not a career and is excluded.
Balances clamp at zero; bigint values serialize as decimal strings.

Input must be an SDK-loaded Character. The result reflects that read's state,
not necessarily current Game rules: compare researchSequenceId with the
catalog sequence and require pendingNodeUpdates === 0 before treating perks
as synchronized. Use getCharacterProgressionForProfile for the optional
sequence-matched XP-definition join. This helper does not authorize research.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `character` | `Pick`\<[`CharacterSnapshot`](/reference/identity/#charactersnapshot), `"address"` \| `"xp"` \| `"modifiers"`\> |

#### Returns

[`CharacterResearchState`](/reference/identity/#characterresearchstate)

#### Example

```ts
declare const ctx: SageContext;
declare const profileAddress: Address;
const character = await getCharacterForProfile(ctx, profileAddress);
const state = deriveCharacterResearchState(character);
console.log(state.careers.pilot.earnedXp, state.careers.pilot.level);
console.log(state.renown.available, state.nodes);
```

***

<a id="getcharacterforprofile"></a>

### getCharacterForProfile()

```ts
function getCharacterForProfile(
   ctx, 
   profileAddress, 
options?): Promise<CharacterSnapshot>;
```

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

Derives and reads the Character associated with a known Player Profile.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `ctx` | [`SageContext`](/reference/#sagecontext) |
| `profileAddress` | [`Address`](/reference/#address-20) |
| `options?` | [`ReadOptions`](/reference/client/#readoptions) |

#### Returns

`Promise`\<[`CharacterSnapshot`](/reference/identity/#charactersnapshot)\>

#### Example

```ts
declare const ctx: SageContext;
declare const profileAddress: Address;
const character = await getCharacterForProfile(ctx, profileAddress);
```

***

<a id="getcharacterprogressionforprofile"></a>

### getCharacterProgressionForProfile()

```ts
function getCharacterProgressionForProfile(
   ctx, 
   profileAddress, 
options?): Promise<CharacterProgressionSnapshot>;
```

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

Reads a derived Character and joins its XP state to matching Game rules.

The Profile-to-Character PDA remains the canonical discovery path. Game XP
rules are loaded lazily and must carry the Character's exact sequence id.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `ctx` | [`SageContext`](/reference/#sagecontext) |
| `profileAddress` | [`Address`](/reference/#address-20) |
| `options?` | [`ReadOptions`](/reference/client/#readoptions) |

#### Returns

`Promise`\<[`CharacterProgressionSnapshot`](/reference/identity/#characterprogressionsnapshot)\>

#### Example

```ts
declare const ctx: SageContext;
declare const profileAddress: Address;
const progression = await getCharacterProgressionForProfile(ctx, profileAddress);
```

***

<a id="getcharactersforwallet"></a>

### getCharactersForWallet()

```ts
function getCharactersForWallet(
   ctx, 
   wallet, 
options): Promise<readonly CharacterSnapshot[]>;
```

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

Resolves wallet Profiles and derives every Character currently present for them.

The returned list preserves the wallet discovery strategy metadata. Profiles
without a Character are omitted because Character creation is optional.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `ctx` | [`SageContext`](/reference/#sagecontext) |
| `wallet` | [`Address`](/reference/#address-20) |
| `options` | [`WalletProfileDiscoveryOptions`](/reference/identity/#walletprofilediscoveryoptions) |

#### Returns

`Promise`\<readonly [`CharacterSnapshot`](/reference/identity/#charactersnapshot)[]\>

#### Example

```ts
declare const ctx: SageContext;
declare const wallet: Address;
const characters = await getCharactersForWallet(ctx, wallet, {
  strategy: 'provider',
});
```

***

<a id="getprofile"></a>

### getProfile()

```ts
function getProfile(
   ctx, 
   address, 
options?): Promise<ProfileSnapshot>;
```

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

Reads a required Player Profile by account address.

#### Parameters

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

#### Returns

`Promise`\<[`ProfileSnapshot`](/reference/identity/#profilesnapshot)\>

#### Example

```ts
declare const ctx: SageContext;
declare const profileAddress: Address;
const profile = await getProfile(ctx, profileAddress);
```

***

<a id="getprofilesforwallet"></a>

### getProfilesForWallet()

```ts
function getProfilesForWallet(
   ctx, 
   wallet, 
options): Promise<readonly ProfileSnapshot[]>;
```

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

Resolves and directly validates zero, one, or many Player Profiles for a wallet.

Provider and known-address results are address hints only. Every unique
candidate is read through the context data plane, validated as a Player
Profile, and checked for the requested wallet in its decoded key list.
Stored matching keys are accepted regardless of expiry; consumers remain
responsible for applying authorization policy to the returned key details.
Missing candidates are treated as stale hints and omitted; a contradictory
present Profile rejects the discovery.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `ctx` | [`SageContext`](/reference/#sagecontext) |
| `wallet` | [`Address`](/reference/#address-20) |
| `options` | [`WalletProfileDiscoveryOptions`](/reference/identity/#walletprofilediscoveryoptions) |

#### Returns

`Promise`\<readonly [`ProfileSnapshot`](/reference/identity/#profilesnapshot)[]\>

#### Example

```ts
declare const ctx: SageContext;
declare const wallet: Address;
const profiles = await getProfilesForWallet(ctx, wallet, {
  strategy: 'provider',
});
```

***

<a id="getresearchcatalog"></a>

### getResearchCatalog()

```ts
function getResearchCatalog(ctx): Promise<ResearchCatalogSnapshot>;
```

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

Reads the Game research tree as an independent, context-cached catalog.

The result intentionally has no Character relation, unlock flags, perk
state, or inferred player ownership. It also has no read metadata because
the definitions registry does not expose an authoritative per-read envelope.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `ctx` | [`SageContext`](/reference/#sagecontext) |

#### Returns

`Promise`\<[`ResearchCatalogSnapshot`](/reference/identity/#researchcatalogsnapshot)\>

#### Example

```ts
declare const ctx: SageContext;
const catalog = await getResearchCatalog(ctx);
```

***

<a id="inspectprofilekeys"></a>

### inspectProfileKeys()

```ts
function inspectProfileKeys(profile, requirement): readonly ProfileKeyInspection[];
```

Defined in: [packages/sage/src/identity/permissions.ts:221](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/identity/permissions.ts#L221)

Inspect every key against an exact scope, mask, direct signer and explicit time.
No AUTH override, role/certificate delegation, threshold policy, RPC, wall clock,
refresh or signer is used. All original indices remain visible; select an index
explicitly for an existing planner and retain its freshness and simulation checks.
Canonical expiresAtRaw controls expiry; negative values are permanent. A key
remains unexpired at its exact expiry second and expires only when at is later.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `profile` | [`ProfileSnapshot`](/reference/identity/#profilesnapshot) |
| `requirement` | [`ProfileKeyRequirement`](/reference/identity/#profilekeyrequirement) |

#### Returns

readonly [`ProfileKeyInspection`](/reference/identity/#profilekeyinspection)[]

#### Example

```ts
declare const profile: ProfileSnapshot;
declare const requirement: ProfileKeyRequirement;
const candidates = inspectProfileKeys(profile, requirement);
console.log(candidates.map(key => [key.keyIndex, key.status]));
```

***

<a id="inspectprofilepermissions"></a>

### inspectProfilePermissions()

```ts
function inspectProfilePermissions(scope, permissionsRaw): ProfilePermissionInspection;
```

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

Inspect known meanings without discarding unrecognized raw bits.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `scope` | `Address` |
| `permissionsRaw` | `bigint` |

#### Returns

[`ProfilePermissionInspection`](/reference/identity/#profilepermissioninspection)

#### Example

```ts
const inspection = inspectProfilePermissions(PROFILE_PERMISSION_SCOPE, 1n);
console.log(inspection.permissions, inspection.unrecognizedBitsRaw);
```

***

<a id="maybegetcharacterforprofile"></a>

### maybeGetCharacterForProfile()

```ts
function maybeGetCharacterForProfile(
   ctx, 
   profileAddress, 
   options?): Promise<
  | CharacterSnapshot
| undefined>;
```

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

Derives and optionally reads the Character for a known Player Profile.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `ctx` | [`SageContext`](/reference/#sagecontext) |
| `profileAddress` | [`Address`](/reference/#address-20) |
| `options?` | [`ReadOptions`](/reference/client/#readoptions) |

#### Returns

`Promise`\<
  \| [`CharacterSnapshot`](/reference/identity/#charactersnapshot)
  \| `undefined`\>

#### Example

```ts
declare const ctx: SageContext;
declare const profileAddress: Address;
const character = await maybeGetCharacterForProfile(ctx, profileAddress);
```

***

<a id="maybegetprofile"></a>

### maybeGetProfile()

```ts
function maybeGetProfile(
   ctx, 
   address, 
options?): Promise<ProfileSnapshot | undefined>;
```

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

Reads an optional Player Profile by account address.

#### Parameters

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

#### Returns

`Promise`\<[`ProfileSnapshot`](/reference/identity/#profilesnapshot) \| `undefined`\>

#### Example

```ts
declare const ctx: SageContext;
declare const profileAddress: Address;
const profile = await maybeGetProfile(ctx, profileAddress);
```

***

<a id="unionprofilepermissionmasks"></a>

### unionProfilePermissionMasks()

```ts
function unionProfilePermissionMasks(masks): bigint;
```

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

Union exact raw masks, preserving unknown bits. Empty input returns zero.
This is a pure bit operation. Callers must track the scope each mask belongs to;
combining masks does not establish permission meanings or authorization.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `masks` | readonly `bigint`[] |

#### Returns

`bigint`

#### Example

```ts
const raw = unionProfilePermissionMasks([4n, 0n]);
```
