# CoinGeckoPriceProvider\<T>

Defined in: [atomiq-sdk/src/prices/providers/CoinGeckoPriceProvider.ts:14](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/prices/providers/CoinGeckoPriceProvider.ts#L14)

Price provider using CoinGecko API

## Extends

* `HttpPriceProvider`<`T`>

## Type Parameters

| Type Parameter             |
| -------------------------- |
| `T` *extends* `MultiChain` |

## Constructors

### Constructor

```
new CoinGeckoPriceProvider<T>(

   coinsMap, 

   url, 

httpRequestTimeout?): CoinGeckoPriceProvider<T>;
```

Defined in: [atomiq-sdk/src/prices/providers/CoinGeckoPriceProvider.ts:16](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/prices/providers/CoinGeckoPriceProvider.ts#L16)

#### Parameters

| Parameter             | Type                 | Default value                        |
| --------------------- | -------------------- | ------------------------------------ |
| `coinsMap`            | `CtorCoinTypes`<`T`> | `undefined`                          |
| `url`                 | `string`             | `"https://api.coingecko.com/api/v3"` |
| `httpRequestTimeout?` | `number`             | `undefined`                          |

#### Returns

`CoinGeckoPriceProvider`<`T`>

#### Overrides

```
HttpPriceProvider<T>.constructor
```

## Properties

### coinsMap

```
coinsMap: CoinTypes<T> = {};
```

Defined in: [atomiq-sdk/src/prices/abstract/IPriceProvider.ts:42](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/prices/abstract/IPriceProvider.ts#L42)

#### Inherited from

```
HttpPriceProvider.coinsMap
```

***

### httpRequestTimeout?

```
optional httpRequestTimeout: number;
```

Defined in: [atomiq-sdk/src/prices/providers/abstract/HttpPriceProvider.ts:7](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/prices/providers/abstract/HttpPriceProvider.ts#L7)

#### Inherited from

```
HttpPriceProvider.httpRequestTimeout
```

***

### url

```
url: string;
```

Defined in: [atomiq-sdk/src/prices/providers/abstract/HttpPriceProvider.ts:6](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/prices/providers/abstract/HttpPriceProvider.ts#L6)

#### Inherited from

```
HttpPriceProvider.url
```

## Methods

### getPrice()

```
getPrice<C>(

   chainIdentifier, 

   token, 

abortSignal?): Promise<bigint>;
```

Defined in: [atomiq-sdk/src/prices/abstract/IPriceProvider.ts:84](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/prices/abstract/IPriceProvider.ts#L84)

Returns coin price in uSat (microSat)

#### Type Parameters

| Type Parameter         |
| ---------------------- |
| `C` *extends* `string` |

#### Parameters

| Parameter         | Type          | Description |
| ----------------- | ------------- | ----------- |
| `chainIdentifier` | `C`           |             |
| `token`           | `string`      |             |
| `abortSignal?`    | `AbortSignal` |             |

#### Returns

`Promise`<`bigint`>

#### Throws

if token is not found

#### Inherited from

```
HttpPriceProvider.getPrice
```

***

### getUsdPrice()

```
getUsdPrice(abortSignal?): Promise<number>;
```

Defined in: [atomiq-sdk/src/prices/abstract/IPriceProvider.ts:106](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/prices/abstract/IPriceProvider.ts#L106)

Returns coin price in uSat (microSat)

#### Parameters

| Parameter      | Type          | Description |
| -------------- | ------------- | ----------- |
| `abortSignal?` | `AbortSignal` |             |

#### Returns

`Promise`<`number`>

#### Throws

if token is not found

#### Inherited from

```
HttpPriceProvider.getUsdPrice
```

***

### fetchPrice()

```
protected fetchPrice(token, abortSignal?): Promise<bigint>;
```

Defined in: [atomiq-sdk/src/prices/providers/CoinGeckoPriceProvider.ts:23](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/prices/providers/CoinGeckoPriceProvider.ts#L23)

#### Parameters

| Parameter      | Type          |
| -------------- | ------------- |
| `token`        | `CoinType`    |
| `abortSignal?` | `AbortSignal` |

#### Returns

`Promise`<`bigint`>

#### Inherit Doc

#### Overrides

```
HttpPriceProvider.fetchPrice
```

***

### fetchUsdPrice()

```
protected fetchUsdPrice(abortSignal?): Promise<number>;
```

Defined in: [atomiq-sdk/src/prices/providers/CoinGeckoPriceProvider.ts:36](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/prices/providers/CoinGeckoPriceProvider.ts#L36)

#### Parameters

| Parameter      | Type          |
| -------------- | ------------- |
| `abortSignal?` | `AbortSignal` |

#### Returns

`Promise`<`number`>

#### Inherit Doc

#### Overrides

```
HttpPriceProvider.fetchUsdPrice
```

***

### getDecimals()

```
protected getDecimals<C>(chainIdentifier, token): number;
```

Defined in: [atomiq-sdk/src/prices/abstract/IPriceProvider.ts:119](https://github.com/atomiqlabs/atomiq-sdk/blob/786509324f7f09c427e9ccfe527d82e496f06af5/src/prices/abstract/IPriceProvider.ts#L119)

Returns the decimal places of the specified token, or -1 if token should be ignored, returns null if token is not found

#### Type Parameters

| Type Parameter         |
| ---------------------- |
| `C` *extends* `string` |

#### Parameters

| Parameter         | Type     | Description |
| ----------------- | -------- | ----------- |
| `chainIdentifier` | `C`      |             |
| `token`           | `string` |             |

#### Returns

`number`

#### Throws

If token is not found

#### Inherited from

```
HttpPriceProvider.getDecimals
```
