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

Markdown source of https://docs-v0-5-0.atlas-kit-docs.pages.dev/reference/mining/ — see https://docs-v0-5-0.atlas-kit-docs.pages.dev/ai/ for the full machine-readable surface.

## Interfaces

<a id="fleetminingoutput"></a>

### FleetMiningOutput

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

One selected and registry-resolved output of an active mining Fleet.

#### Example

```ts
declare const output: FleetMiningOutput;
console.log(output.cargo.name, output.unitsPerSecond);
```

#### Extends

- [`ResourceDepositItem`](/reference/mining/#resourcedeposititem)

#### Properties

<a id="activeminercountraw"></a>

##### activeMinerCountRaw

```ts
readonly activeMinerCountRaw: bigint;
```

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

###### Inherited from

[`ResourceDepositItem`](/reference/mining/#resourcedeposititem).[`activeMinerCountRaw`](/reference/mining/#resourcedeposititem)

<a id="amountminedunitsraw"></a>

##### amountMinedUnitsRaw

```ts
readonly amountMinedUnitsRaw: bigint;
```

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

###### Inherited from

[`ResourceDepositItem`](/reference/mining/#resourcedeposititem).[`amountMinedUnitsRaw`](/reference/mining/#resourcedeposititem)

<a id="cargo"></a>

##### cargo

```ts
readonly cargo: CargoDefinitionSummary;
```

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

###### Inherited from

[`ResourceDepositItem`](/reference/mining/#resourcedeposititem).[`cargo`](/reference/mining/#resourcedeposititem)

<a id="richness"></a>

##### richness

```ts
readonly richness: WorldFixedValue;
```

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

###### Inherited from

[`ResourceDepositItem`](/reference/mining/#resourcedeposititem).[`richness`](/reference/mining/#resourcedeposititem)

<a id="unitspersecond"></a>

##### unitsPerSecond

```ts
readonly unitsPerSecond: number;
```

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

***

<a id="fleetminingsnapshot"></a>

### FleetMiningSnapshot

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

Immutable current extraction relationship for one active mining Fleet.

#### Example

```ts
declare const mining: FleetMiningSnapshot;
console.log(mining.outputs);
```

#### Properties

<a id="asteroid"></a>

##### asteroid

```ts
readonly asteroid: EntityRef<"celestialBody">;
```

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

<a id="fleet"></a>

##### fleet

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

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

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

##### kind

```ts
readonly kind: "fleetMining";
```

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

<a id="lastupdatedatunixseconds"></a>

##### lastUpdatedAtUnixSeconds

```ts
readonly lastUpdatedAtUnixSeconds: bigint;
```

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

<a id="miningrate"></a>

##### miningRate

```ts
readonly miningRate: {
  raw: bigint;
  unitsPerSecond: number;
};
```

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

###### raw

```ts
readonly raw: bigint;
```

###### unitsPerSecond

```ts
readonly unitsPerSecond: number;
```

<a id="outputs"></a>

##### outputs

```ts
readonly outputs: readonly FleetMiningOutput[];
```

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

<a id="ownerprofile"></a>

##### ownerProfile

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

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

<a id="regionxpmodifier"></a>

##### regionXpModifier

```ts
readonly regionXpModifier: WorldFixedValue;
```

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

#### Methods

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

##### toJSON()

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

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

###### Returns

`unknown`

***

<a id="miningoutputrate"></a>

### MiningOutputRate

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

One richness-adjusted resource output in cargo units per second.

#### Example

```ts
const rate: MiningOutputRate = { cargoId: 8, unitsPerSecond: 4.5 };
```

#### Properties

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

##### cargoId

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

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

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

##### unitsPerSecond

```ts
readonly unitsPerSecond: number;
```

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

***

<a id="miningoutputrateinput"></a>

### MiningOutputRateInput

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

A pure rate input pairing one cargo id with Asteroid richness.

#### Example

```ts
const input: MiningOutputRateInput = { cargoId: 8, richness: 1.5 };
```

#### Properties

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

##### cargoId

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

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

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

##### richness

```ts
readonly richness: number;
```

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

***

<a id="resourcedeposititem"></a>

### ResourceDepositItem

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

One registry-resolved resource row nested in an Asteroid deposit.

#### Example

```ts
declare const resource: ResourceDepositItem;
console.log(resource.cargo.name, resource.richness.value);
```

#### Extended by

- [`FleetMiningOutput`](/reference/mining/#fleetminingoutput)

#### Properties

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

##### activeMinerCountRaw

```ts
readonly activeMinerCountRaw: bigint;
```

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

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

##### amountMinedUnitsRaw

```ts
readonly amountMinedUnitsRaw: bigint;
```

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

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

##### cargo

```ts
readonly cargo: CargoDefinitionSummary;
```

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

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

##### richness

```ts
readonly richness: WorldFixedValue;
```

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

***

<a id="resourcedepositsnapshot"></a>

### ResourceDepositSnapshot

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

Immutable, translated Asteroid resource-deposit snapshot.

#### Example

```ts
declare const deposit: ResourceDepositSnapshot;
console.log(deposit.resources);
```

#### Properties

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

##### address

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

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

<a id="bodyid"></a>

##### bodyId

```ts
readonly bodyId: number;
```

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

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

##### game

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

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

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

##### kind

```ts
readonly kind: "resourceDeposit";
```

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

<a id="lastsyncedatunixseconds"></a>

##### lastSyncedAtUnixSeconds

```ts
readonly lastSyncedAtUnixSeconds: bigint;
```

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

<a id="name"></a>

##### name

```ts
readonly name: string;
```

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

<a id="resources"></a>

##### resources

```ts
readonly resources: readonly ResourceDepositItem[];
```

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

<a id="system"></a>

##### system

```ts
readonly system: EntityRef<"starSystem">;
```

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

<a id="systemsequenceid"></a>

##### systemSequenceId

```ts
readonly systemSequenceId: bigint;
```

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

#### Methods

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

##### toJSON()

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

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

###### Returns

`unknown`

## Type Aliases

<a id="miningdiscoveryoptions"></a>

### MiningDiscoveryOptions

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

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

Options supported by owner-scoped active-mining discovery.

#### Example

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

## Functions

<a id="deriveminingoutputrates"></a>

### deriveMiningOutputRates()

```ts
function deriveMiningOutputRates(fleetUnitsPerSecond, outputs): readonly MiningOutputRate[];
```

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

Derives each selected output rate as Fleet units/second times deposit richness.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `fleetUnitsPerSecond` | `number` |
| `outputs` | readonly [`MiningOutputRateInput`](/reference/mining/#miningoutputrateinput)[] |

#### Returns

readonly [`MiningOutputRate`](/reference/mining/#miningoutputrate)[]

#### Example

```ts
const rates = deriveMiningOutputRates(2, [{ cargoId: 8, richness: 1.5 }]);
```

***

<a id="deriveminingstateageseconds"></a>

### deriveMiningStateAgeSeconds()

```ts
function deriveMiningStateAgeSeconds(lastUpdatedAtUnixSeconds, atUnixSeconds): number;
```

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

Derives mining-state age in whole seconds and clamps future timestamps.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `lastUpdatedAtUnixSeconds` | `bigint` |
| `atUnixSeconds` | `bigint` |

#### Returns

`number`

#### Example

```ts
const age = deriveMiningStateAgeSeconds(100n, 112n); // 12
```

***

<a id="getfleetminingstate"></a>

### getFleetMiningState()

```ts
function getFleetMiningState(
   context, 
   fleet, 
   options?): Promise<
  | FleetMiningSnapshot
| undefined>;
```

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

Reads a Fleet and returns its active extraction relationship, if mining.

#### Parameters

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

#### Returns

`Promise`\<
  \| [`FleetMiningSnapshot`](/reference/mining/#fleetminingsnapshot)
  \| `undefined`\>

#### Example

```ts
declare const ctx: SageContext;
declare const fleet: Address;
const mining = await getFleetMiningState(ctx, fleet);
```

***

<a id="getfleetminingstatesbyowner"></a>

### getFleetMiningStatesByOwner()

```ts
function getFleetMiningStatesByOwner(
   context, 
   owner, 
options?): Promise<readonly FleetMiningSnapshot[]>;
```

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

Finds active mining Fleets for one owner through stable Fleet filters.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `owner` | [`Address`](/reference/#address-19) |
| `options?` | [`MiningDiscoveryOptions`](/reference/mining/#miningdiscoveryoptions) |

#### Returns

`Promise`\<readonly [`FleetMiningSnapshot`](/reference/mining/#fleetminingsnapshot)[]\>

#### Example

```ts
declare const ctx: SageContext;
declare const owner: Address;
const mining = await getFleetMiningStatesByOwner(ctx, owner);
```

***

<a id="getresourcedeposit"></a>

### getResourceDeposit()

```ts
function getResourceDeposit(
   context, 
   asteroid, 
options?): Promise<ResourceDepositSnapshot>;
```

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

Reads a required Asteroid resource deposit by CelestialBody address.

#### Parameters

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

#### Returns

`Promise`\<[`ResourceDepositSnapshot`](/reference/mining/#resourcedepositsnapshot)\>

#### Example

```ts
declare const ctx: SageContext;
declare const asteroid: Address;
const deposit = await getResourceDeposit(ctx, asteroid);
```

***

<a id="maybegetresourcedeposit"></a>

### maybeGetResourceDeposit()

```ts
function maybeGetResourceDeposit(
   context, 
   asteroid, 
   options?): Promise<
  | ResourceDepositSnapshot
| undefined>;
```

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

Reads an optional Asteroid resource deposit by CelestialBody address.

Returns `undefined` only when the account does not exist. A present
non-Asteroid CelestialBody throws [AccountDecodeError](/reference/client/#accountdecodeerror) because it is
not a resource deposit.

#### Parameters

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

#### Returns

`Promise`\<
  \| [`ResourceDepositSnapshot`](/reference/mining/#resourcedepositsnapshot)
  \| `undefined`\>

#### Example

```ts
declare const ctx: SageContext;
declare const asteroid: Address;
const deposit = await maybeGetResourceDeposit(ctx, asteroid);
```

***

<a id="projectminingoutputunits"></a>

### projectMiningOutputUnits()

```ts
function projectMiningOutputUnits(unitsPerSecond, elapsedSeconds): number;
```

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

Projects nominal output units from a rate and elapsed seconds.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `unitsPerSecond` | `number` |
| `elapsedSeconds` | `number` |

#### Returns

`number`

#### Example

```ts
const units = projectMiningOutputUnits(4.5, 20); // 90
```
