# StarknetBrowserSigner

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetBrowserSigner.ts:11](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetBrowserSigner.ts#L11)

Browser-based Starknet signer, use with browser based signer accounts, this ensures that no signTransaction calls are made and only sendTransaction is supported!

## Extends

* [`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md)

## Constructors

### Constructor

```
new StarknetBrowserSigner(account, usesECDSADN?): StarknetBrowserSigner;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetBrowserSigner.ts:23](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetBrowserSigner.ts#L23)

#### Parameters

| Parameter      | Type      | Description                                                                                                                                                                                                                                    |
| -------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `account`      | `Account` | Signer account to request signatures and send transaction through                                                                                                                                                                              |
| `usesECDSADN?` | `boolean` | Optional flag indicating whether the signer supports signing using ECDSA-DN (deterministic nonce) algorithm, this allows the wallet to produce reproducible entropy. Only pass `true` here if you are 100% sure that the signer supports this! |

#### Returns

`StarknetBrowserSigner`

#### Overrides

[`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md).[`constructor`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md#constructor)

## Properties

### account

```
readonly account: Account;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:82](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L82)

#### Inherited from

[`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md).[`account`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md#account)

***

### getReproducibleEntropy()?

```
optional getReproducibleEntropy: (appName) => Promise<Buffer<ArrayBufferLike>>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetBrowserSigner.ts:15](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetBrowserSigner.ts#L15)

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `appName` | `string` |

#### Returns

`Promise`<`Buffer`<`ArrayBufferLike`>>

***

### isManagingNoncesInternally

```
readonly isManagingNoncesInternally: boolean;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:81](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L81)

#### Inherited from

[`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md).[`isManagingNoncesInternally`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md#ismanagingnoncesinternally)

***

### type

```
type: "AtomiqAbstractSigner";
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:79](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L79)

#### Inherited from

[`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md).[`type`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md#type)

## Methods

### getAddress()

```
getAddress(): string;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:99](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L99)

#### Returns

`string`

#### Inherit Doc

#### Inherited from

[`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md).[`getAddress`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md#getaddress)

***

### getDeployPayload()

```
getDeployPayload(): Promise<any>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:187](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L187)

Returns the payload for deploying the signer account's contract on Starknet

#### Returns

`Promise`<`any`>

#### Inherited from

[`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md).[`getDeployPayload`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md#getdeploypayload)

***

### getReproducibleEntropyMessage()

```
static getReproducibleEntropyMessage(starknetChainId, appName): object;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:49](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L49)

Returns a SNIP-12 message to be signed for extracting reproducible entropy. Works when wallets use signing with deterministic nonce, such that signature over the same message always yields the same signature (same entropy).

#### Parameters

| Parameter         | Type              | Description                                                                            |
| ----------------- | ----------------- | -------------------------------------------------------------------------------------- |
| `starknetChainId` | `StarknetChainId` | Starknet chain ID to use for the SNIP-12 message                                       |
| `appName`         | `string`          | Application name to differentiate reproducible entropy generated across different apps |

#### Returns

`object`

| Name                   | Type        | Default value | Defined in                                                                                                                                                                                                    |
| ---------------------- | ----------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `domain`               | `object`    | -             | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:66](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L66) |
| `domain.chainId`       | `any`       | -             | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:69](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L69) |
| `domain.name`          | `string`    | `appName`     | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:67](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L67) |
| `domain.revision`      | `string`    | `'1'`         | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:70](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L70) |
| `domain.version`       | `string`    | `'1'`         | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:68](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L68) |
| `message`              | `object`    | -             | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:72](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L72) |
| `message.Message`      | `string`    | `message`     | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:73](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L73) |
| `message.Warning`      | `string`    | `warning`     | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:74](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L74) |
| `primaryType`          | `string`    | `'Message'`   | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:65](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L65) |
| `types`                | `object`    | -             | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:53](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L53) |
| `types.Message`        | `object`\[] | -             | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:60](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L60) |
| `types.StarknetDomain` | `object`\[] | -             | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:54](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L54) |

#### Inherited from

[`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md).[`getReproducibleEntropyMessage`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md#getreproducibleentropymessage)

***

### sendTransaction()

```
sendTransaction(tx, onBeforePublish?): Promise<string>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:152](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L152)

Signs and sends the provided starknet transaction. Note that onBeforePublish is not really called before the tx is sent out in this default case, since this is not supported by the starknet web based wallets

#### Parameters

| Parameter          | Type                                                                                                                | Description                                           |
| ------------------ | ------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| `tx`               | [`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md) | A transaction to sign and send                        |
| `onBeforePublish?` | (`txId`, `rawTx`) => `Promise`<`void`>                                                                              | A callback called after the transaction has been sent |

#### Returns

`Promise`<`string`>

#### Inherited from

[`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md).[`sendTransaction`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md#sendtransaction)

***

### signTransaction()?

```
optional signTransaction(tx): Promise<StarknetTx>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:124](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L124)

Signs the provided starknet transaction and returns its signed version

#### Parameters

| Parameter | Type                                                                                                                | Description                    |
| --------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| `tx`      | [`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md) | A starknet transaction to sign |

#### Returns

`Promise`<[`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md)>

#### Inherited from

[`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md).[`signTransaction`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md#signtransaction)

***

### sendDeployAccount()

```
protected sendDeployAccount(tx): Promise<string>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:179](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L179)

#### Parameters

| Parameter | Type                                                                                                                                          | Description |
| --------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `tx`      | [`StarknetTxDeployAccount`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTxDeployAccount.md) |             |

#### Returns

`Promise`<`string`>

#### Inherited from

[`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md).[`sendDeployAccount`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md#senddeployaccount)

***

### sendInvoke()

```
protected sendInvoke(tx): Promise<string>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:169](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L169)

#### Parameters

| Parameter | Type                                                                                                                            | Description |
| --------- | ------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `tx`      | [`StarknetTxInvoke`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTxInvoke.md) |             |

#### Returns

`Promise`<`string`>

#### Inherited from

[`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md).[`sendInvoke`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md#sendinvoke)

***

### signDeployAccount()

```
protected signDeployAccount(tx): Promise<DeployAccountContractTransaction>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:141](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L141)

#### Parameters

| Parameter | Type                                                                                                                                          | Description |
| --------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `tx`      | [`StarknetTxDeployAccount`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTxDeployAccount.md) |             |

#### Returns

`Promise`<`DeployAccountContractTransaction`>

#### Inherited from

[`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md).[`signDeployAccount`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md#signdeployaccount)

***

### signInvoke()

```
protected signInvoke(tx): Promise<Invocation>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:133](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L133)

#### Parameters

| Parameter | Type                                                                                                                            | Description |
| --------- | ------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `tx`      | [`StarknetTxInvoke`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTxInvoke.md) |             |

#### Returns

`Promise`<`Invocation`>

#### Inherited from

[`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md).[`signInvoke`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md#signinvoke)
