npm package: @rialo/wallet-standard
Description: Wallet Standard definition for Rialo Network
Author: Subzero Labs
Latest version: 0.1.1

# @rialo/wallet-standard

Wallet Standard implementation for Rialo Network, providing a standardized interface for wallet interactions following the [Wallet Standard](https://github.com/wallet-standard/wallet-standard) specification.

## Installation

```bash
npm install @rialo/wallet-standard
```

```bash
yarn add @rialo/wallet-standard
```

```bash
pnpm add @rialo/wallet-standard
```

## Overview

This package provides the standard wallet interface for Rialo Network applications. It implements the Wallet Standard specification to ensure compatibility and interoperability across different wallet implementations and dApps.

## Features

- Full Wallet Standard compliance
- Rialo-specific transaction signing and submission
- Multi-chain support for Rialo networks
- Message signing capabilities
- Event-driven architecture for state management

## Usage

### Connect to Wallet

```typescript
const { accounts } = await wallet.features['standard:connect'].connect();

// Access the connected account
const account = accounts[0];
console.log('Connected account:', account.address);
```

### Sign and Send Transaction

```typescript
import { RialoSignAndSendTransaction } from '@rialo/wallet-standard';

const result = await wallet.features[RialoSignAndSendTransaction].signAndSendTransaction({
  account: account,
  transaction: transactionBuffer,
  chain: 'rialo:mainnet',
  options: {
    skipPreflight: false
  }
});

console.log('Transaction signature:', result.signature);
```

### Sign Message

```typescript
import { RialoSignMessage } from '@rialo/wallet-standard';

const result = await wallet.features[RialoSignMessage].signMessage({
  account: account,
  message: new TextEncoder().encode('Hello, Rialo!'),
  chain: 'rialo:mainnet'
});

console.log('Message signature:', result.signature);
```

### Event Handling

```typescript
wallet.features['standard:events'].on('change', ({ accounts, chains }) => {
  console.log('Wallet state changed');
  console.log('Active accounts:', accounts);
  console.log('Active chains:', chains);
});
```

## API Reference

### Features

#### Standard Features

- `standard:connect` - Connect to the wallet
- `standard:disconnect` - Disconnect from the wallet
- `standard:events` - Event subscription interface

#### Rialo Features

- `rialo:signAndSendTransaction` - Sign and submit a single transaction
- `rialo:signAndSendAllTransactions` - Sign and submit multiple transactions
- `rialo:signTransaction` - Sign a transaction without submitting
- `rialo:signMessage` - Sign an arbitrary message

### Types

#### `RialoWalletAccount`

```typescript
interface RialoWalletAccount {
  address: string;
  publicKey: Uint8Array;
  chains: RialoChain[];
  features: string[];
  label?: string;
  icon?: string;
}
```

#### `RialoChain`

```typescript
type RialoChain = 'rialo:testnet' | 'rialo:devnet' | 'rialo:localnet';
```

## Chain Support

The wallet standard supports the following Rialo chains:

- `rialo:localnet` - Rialo Local Network
- `rialo:testnet` - Rialo Testnet
- `rialo:devnet` - Rialo Development Network

## Browser Support

This package supports all modern browsers with ES2020 compatibility:

- Chrome 80+
- Firefox 75+
- Safari 14+
- Edge 80+

## TypeScript Support

This package includes TypeScript definitions. No additional `@types` packages are required.

```typescript
import type {
  RialoWalletAccount,
  RialoChain,
  RialoSignTransactionOutput
} from '@rialo/wallet-standard';
```

## Contributing

Contributions are welcome. Please ensure all changes maintain Wallet Standard compliance.

## License

Apache-2.0

## Links
- [GitHub Repository](https://github.com/SubzeroLabs/wallet-standard)