# Browser JS API Reference

Date: 2026-04-03

This page documents the browser-global API exposed as:

```js
window.SPAAdapter
```

Source:

- `adapter.js`

## Auth And User

- `register({ userId, password, rpcUrl?, walletType? })`
- `login({ userId, password, rpcUrl? })`
- `logout()`
- `saveBank(userId, bank)`
- `cashIn(amount)`
- `cashOut(amount)`

## Wallet And Contract Access

- `connectWallet(rpcUrl)`
- `getAllContractNamesFromRegistry()`
- `getContractFromRegistry(contractName)`
- `getMerchantConfiguration(merchantContractAddress)`
- `getSettlementWalletsForContract(contractAddress)`
- `getStoredApiTokensForContract(contractAddress)`

## Merchant Enrollment And Payments

- `generateMerchantApiToken()`
- `merchantRegister(merchantContractAddress, merchantOwnerUserId, merchantOwnerPassword)`
- `merchantHold(amount)`
- `merchantSettle(txId, finalAmount)`

## Useful Sequence For Agents

```js
await window.SPAAdapter.login({ userId, password });
await window.SPAAdapter.connectWallet(rpcUrl);

const contract = await window.SPAAdapter.getContractFromRegistry(contractName);
const readiness = await window.SPAAdapter.getSettlementWalletsForContract(contract.address);
const tokens = await window.SPAAdapter.getStoredApiTokensForContract(contract.address);
```

If tokens are missing, generate them with the correct owner accounts first. Then run:

```js
await window.SPAAdapter.merchantRegister(
  contract.address,
  merchantOwnerUserId,
  merchantOwnerPassword,
);
```
