> For the complete documentation index, see [llms.txt](https://docs.kasware.xyz/wallet/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kasware.xyz/wallet/developer-documentation/kaspa.md).

# Kaspa Integration

Welcome to KasWare's integration documentation. This documentation is for learning to integrate KasWare wallet with your applications.

**Please note**: The integration API may be modified if relevant standards are officially released by Kaspa core team one day in the future.

## Getting Started

First of all, install KasWare Wallet on your development machine. Once KasWare Wallet is installed and running, you should find that new browser tabs have a window\.kasware object available in the developer console. This is how your website will interact with KasWare Wallet.

### Demo Code

[Demo source code](https://github.com/kasware-wallet/dapp-demo)

### Browser Detection

To verify if the browser is running KasWare Wallet, copy and paste the code snippet below in the developer console of your web browser:

```javascript
if (typeof window.kasware !== "undefined") {
  console.log("KasWare Wallet is installed!");
}
```

You can review the full API for the window\.kasware object here.

### Connecting to KasWare Wallet

"Connecting" or "logging in" to KasWare Wallet effectively means "to access the user's Kaspa account(s)".

You should **only** initiate a connection request in response to direct user action, such as clicking a button. You should **always** disable the "connect" button while the connection request is pending. You should **never** initiate a connection request on page load.

We recommend that you provide a button to allow the user to connect KasWare Wallet to your dapp. Clicking this button should call the following method:

```javascript
kasware.requestAccounts();
```

## API Reference

### Quick Navigation

| Category             | Documentation                                                                        | Main APIs                                                                               |
| -------------------- | ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- |
| 🔌 Connection        | [kaspa-connection.md](/wallet/developer-documentation/kaspa/kaspa-connection.md)     | `requestAccounts`, `getAccounts`, `getNetwork`, `switchNetwork`, `disconnect`           |
| 👤 Account           | [kaspa-account.md](/wallet/developer-documentation/kaspa/kaspa-account.md)           | `getPublicKey`, `getBalance`, `getKRC20Balance`, `getUtxoEntries`                       |
| 💸 Transaction       | [kaspa-transaction.md](/wallet/developer-documentation/kaspa/kaspa-transaction.md)   | `sendKaspa`, `signPskt`, `pushPskt`                                                     |
| 🪙 KRC20             | [kaspa-krc20.md](/wallet/developer-documentation/kaspa/kaspa-krc20.md)               | `buildScript`, `submitCommitReveal`, `signKRC20Transaction`                             |
| 🪙 KCC-20            | [kaspa-kcc20.md](/wallet/developer-documentation/kaspa/kaspa-kcc20.md)               | `signKcc20Deploy`, `signKcc20Mint`, `signKcc20Transfer`                                 |
| 🏪 KRC20 Marketplace | [kaspa-krc20-market.md](/wallet/developer-documentation/kaspa/kaspa-krc20-market.md) | `createKRC20Order`, `buyKRC20Token`, `cancelKRC20Order`                                 |
| ✍️ Sign              | [kaspa-sign.md](/wallet/developer-documentation/kaspa/kaspa-sign.md)                 | `signMessage`                                                                           |
| 📡 Events            | [kaspa-events.md](/wallet/developer-documentation/kaspa/kaspa-events.md)             | `accountsChanged`, `networkChanged`, `balanceChanged`, `transactionReplacementResponse` |
