# Algorand Wallet Reach Browser Spec

## Abstract

A common convention for DApps to discover Algorand wallets in browser code: `window.algorand`. A property `algorand` attached to the `window` browser object, with all the features defined in [ARC-0010](https://dev.algorand.co/arc-standards/arc-0010#specification).

## Specification

```
interface WindowAlgorand {

enable: EnableFunction;

enableNetwork?: EnableNetworkFunction;

enableAccounts?: EnableAccountsFunction;

signAndPostTxns: SignAndPostTxnsFunction;

getAlgodv2Client: GetAlgodv2ClientFunction;

getIndexerClient: GetIndexerClientFunction;

signTxns?: SignTxnsFunction;

postTxns?: SignTxnsFunction;

}
```

With the specifications and semantics for each function as stated in [ARC-0010](https://dev.algorand.co/arc-standards/arc-0010#specification).

## Rationale

DApps should be unopinionated about which wallet they are used with. End users should be able to inject their wallet of choice into the DApp. Therefore, in browser contexts, we reserve `window.algorand` for this purpose.

## Security Considerations

None.

## Copyright

Copyright and related rights waived via [CCO](https://creativecommons.org/publicdomain/zero/1.0/).
