Documentation: 0.5.0 (source: v0.5.0).
# identity

Markdown source of https://docs-v0-5-0.atlas-kit-docs.pages.dev/reference/identity/ — see https://docs-v0-5-0.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/identity.ts:231](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L231)

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/identity.ts:242](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L242)

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

##### atlasRaw

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

Defined in: [packages/sage/src/internal/c4/identity.ts:241](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L241)

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

##### bump

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

Defined in: [packages/sage/src/internal/c4/identity.ts:235](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L235)

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

##### checkIn

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

Defined in: [packages/sage/src/internal/c4/identity.ts:236](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L236)

###### 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/identity.ts:243](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L243)

###### 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/identity.ts:234](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L234)

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

##### modifiers

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

Defined in: [packages/sage/src/internal/c4/identity.ts:254](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L254)

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

##### pilotXpBudget

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

Defined in: [packages/sage/src/internal/c4/identity.ts:248](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L248)

###### 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/identity.ts:233](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L233)

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

##### version

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

Defined in: [packages/sage/src/internal/c4/identity.ts:232](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L232)

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

##### xp

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

Defined in: [packages/sage/src/internal/c4/identity.ts:240](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L240)

***

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

### CharacterModifierData

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

SDK-owned translation of Character modifier values.

#### Example

```ts
declare const modifiers: CharacterModifierData;
const fleetLimit = modifiers.fleetSize;
```

#### Properties

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

##### cargoCategories

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

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

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

##### craftingEfficiencyModifier

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

Defined in: [packages/sage/src/internal/c4/identity.ts:184](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L184)

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

##### craftingEfficiencyModifierRaw

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

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

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

##### craftingJobConcurrencyBonus

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

Defined in: [packages/sage/src/internal/c4/identity.ts:188](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L188)

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

##### craftingTimeModifier

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

Defined in: [packages/sage/src/internal/c4/identity.ts:186](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L186)

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

##### craftingTimeModifierRaw

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

Defined in: [packages/sage/src/internal/c4/identity.ts:187](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L187)

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

##### enemyFactionZoneAccess

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

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

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

##### fleetConcurrency

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

Defined in: [packages/sage/src/internal/c4/identity.ts:173](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L173)

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

##### fleetSize

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

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

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

##### maxDailyStreakLength

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

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

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

##### maxProductivePlots

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

Defined in: [packages/sage/src/internal/c4/identity.ts:192](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L192)

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

##### maxProductivePlotTier?

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

Defined in: [packages/sage/src/internal/c4/identity.ts:191](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L191)

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

##### maxResidentialPlots

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

Defined in: [packages/sage/src/internal/c4/identity.ts:190](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L190)

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

##### maxResidentialPlotTier?

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

Defined in: [packages/sage/src/internal/c4/identity.ts:189](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L189)

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

##### maxShipSize

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

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

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

##### rareMineralDiscovery

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

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

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

##### researchTags

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

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

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

##### respawnTimeModifier

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

Defined in: [packages/sage/src/internal/c4/identity.ts:174](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L174)

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

##### respawnTimeModifierRaw

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

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

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

##### scanCoolDownModifier

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

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

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

##### scanCoolDownModifierRaw

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

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

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

##### scanPowerModifier

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

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

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

##### scanPowerModifierRaw

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

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

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

##### securityZoneAccess

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

Defined in: [packages/sage/src/internal/c4/identity.ts:193](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L193)

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

##### subwarpSpeedModifier

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

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

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

##### subwarpSpeedModifierRaw

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

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

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

##### warpCooldownModifier

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

Defined in: [packages/sage/src/internal/c4/identity.ts:182](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L182)

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

##### warpCooldownModifierRaw

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

Defined in: [packages/sage/src/internal/c4/identity.ts:183](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L183)

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

##### warpLaneFeeModifier

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

Defined in: [packages/sage/src/internal/c4/identity.ts:176](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L176)

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

##### warpLaneFeeModifierRaw

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

Defined in: [packages/sage/src/internal/c4/identity.ts:177](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L177)

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

##### warpSpeedModifier

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

Defined in: [packages/sage/src/internal/c4/identity.ts:178](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L178)

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

##### warpSpeedModifierRaw

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

Defined in: [packages/sage/src/internal/c4/identity.ts:179](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L179)

***

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

### CharacterModifiersData

Defined in: [packages/sage/src/internal/c4/identity.ts:213](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L213)

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/identity.ts:217](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L217)

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

##### seqId

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

Defined in: [packages/sage/src/internal/c4/identity.ts:214](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L214)

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

##### unlockedNodes

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

Defined in: [packages/sage/src/internal/c4/identity.ts:216](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L216)

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

##### unupdatedCount

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

Defined in: [packages/sage/src/internal/c4/identity.ts:215](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L215)

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

##### values

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

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

***

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

### CharacterProgressionSnapshot

Defined in: [packages/sage/src/identity/index.ts:138](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L138)

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:140](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L140)

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

##### kind

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

Defined in: [packages/sage/src/identity/index.ts:139](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L139)

<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:142](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L142)

###### 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:141](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L141)

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

##### xpDefinitions

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

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

#### Methods

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

##### toJSON()

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

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

###### Returns

`unknown`

***

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

### CharacterSnapshot

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

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:122](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L122)

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

##### atlas

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

Defined in: [packages/sage/src/internal/c4/identity.ts:242](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L242)

###### 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/identity.ts:241](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L241)

###### 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/identity.ts:235](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L235)

###### 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/identity.ts:236](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L236)

###### 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/identity.ts:243](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L243)

###### 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/identity.ts:234](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L234)

###### 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:121](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L121)

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

##### modifiers

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

Defined in: [packages/sage/src/internal/c4/identity.ts:254](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L254)

###### 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/identity.ts:248](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L248)

###### 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:123](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L123)

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

##### version

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

Defined in: [packages/sage/src/internal/c4/identity.ts:232](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L232)

###### 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/identity.ts:240](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L240)

###### Inherited from

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

#### Methods

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

##### toJSON()

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

Defined in: [packages/sage/src/identity/index.ts:124](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L124)

###### Returns

`unknown`

***

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

### CharacterXpCategoryData

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

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/identity.ts:103](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L103)

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

##### level

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

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

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

##### spent

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

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

***

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

### CharacterXpData

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

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/identity.ts:121](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L121)

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

##### combat

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

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

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

##### councilRank

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

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

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

##### councilRankLevelCarry

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

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

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

##### crafting

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

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

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

##### dailyXp

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

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

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

##### dataRunner

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

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

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

##### mining

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

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

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

##### pilot

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

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

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

##### seqId

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

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

***

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

### ProfileAccountData

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

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:87](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L87)

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

##### createdAt

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

Defined in: [packages/sage/src/internal/c4/identity.ts:90](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L90)

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

##### keys

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

Defined in: [packages/sage/src/internal/c4/identity.ts:91](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L91)

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

##### keyThreshold

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

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

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

##### nextSeqId

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

Defined in: [packages/sage/src/internal/c4/identity.ts:89](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L89)

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

##### version

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

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

***

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

### ProfileKeyData

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

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:70](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L70)

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

##### expiresAt?

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

Defined in: [packages/sage/src/internal/c4/identity.ts:73](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L73)

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

##### expiresAtRaw

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

Defined in: [packages/sage/src/internal/c4/identity.ts:72](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L72)

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

##### permissions

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

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

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

##### permissionsRaw

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

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

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

##### scope

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

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

***

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

### ProfileSnapshot

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

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-2"></a>

##### address

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

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

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

##### authKeyCount

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

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

###### 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:90](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L90)

###### 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:91](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L91)

###### 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:88](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L88)

###### 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:102](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L102)

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

##### nextSeqId

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

Defined in: [packages/sage/src/internal/c4/identity.ts:89](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L89)

###### 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:86](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L86)

###### Inherited from

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

#### Methods

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

##### toJSON()

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

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

###### Returns

`unknown`

***

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

### RareMineralDiscoveryData

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

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/identity.ts:159](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L159)

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

##### multiplier

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

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

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

##### multiplierRaw

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

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

***

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

### ResearchCatalogSnapshot

Defined in: [packages/sage/src/identity/index.ts:156](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L156)

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:158](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L158)

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

##### kind

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

Defined in: [packages/sage/src/identity/index.ts:157](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L157)

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

##### nodes

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

Defined in: [packages/sage/src/identity/index.ts:159](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L159)

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

##### sequenceId

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

Defined in: [packages/sage/src/identity/index.ts:160](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L160)

#### Methods

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

##### toJSON()

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

Defined in: [packages/sage/src/identity/index.ts:161](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L161)

###### Returns

`unknown`

## Type Aliases

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

### ProfilePermission

```ts
type ProfilePermission = 
  | "authenticate"
  | "addKeys"
  | "removeKeys"
  | "changeName"
  | "createRole"
  | "removeRole"
  | "setAuthorizer"
  | "joinRole"
  | "leaveRole"
  | "toggleAcceptingNewMembers"
  | "addMember"
  | "removeMember"
  | "drainSolVault";
```

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

Stable labels for Player Profile key permissions.

#### Example

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

***

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

### ResearchNodeDefinition

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

Defined in: [packages/sage/src/identity/index.ts:89](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L89)

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/identity.ts:149](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L149)

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/identity.ts:133](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/internal/c4/identity.ts#L133)

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:179](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L179)

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:62](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L62)

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:80](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L80)

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:71](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L71)

Exact XP thresholds for one level across every category.

#### Example

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

## Functions

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

### getCharacterForProfile()

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

Defined in: [packages/sage/src/identity/index.ts:458](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L458)

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

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `ctx` | [`SageContext`](/reference/#sagecontext) |
| `profileAddress` | [`Address`](/reference/#address-19) |
| `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:377](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L377)

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-19) |
| `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:645](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L645)

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-19) |
| `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:355](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L355)

Reads a required Player Profile by account address.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `ctx` | [`SageContext`](/reference/#sagecontext) |
| `address` | [`Address`](/reference/#address-19) |
| `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:517](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L517)

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-19) |
| `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:401](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L401)

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

### maybeGetCharacterForProfile()

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

Defined in: [packages/sage/src/identity/index.ts:481](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L481)

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

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `ctx` | [`SageContext`](/reference/#sagecontext) |
| `profileAddress` | [`Address`](/reference/#address-19) |
| `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:436](https://github.com/Aephia/atlas-kit/blob/v0.5.0/packages/sage/src/identity/index.ts#L436)

Reads an optional Player Profile by account address.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `ctx` | [`SageContext`](/reference/#sagecontext) |
| `address` | [`Address`](/reference/#address-19) |
| `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);
```
