diff --git a/docs/.vitepress/config.mjs b/docs/.vitepress/config.mjs
index fe6adae..eceea8a 100644
--- a/docs/.vitepress/config.mjs
+++ b/docs/.vitepress/config.mjs
@@ -15,6 +15,7 @@ export default {
items: [
{ text: 'Getting Started', link: '/guide/getting-started' },
{ text: 'Installation', link: '/guide/installation' },
+ { text: 'Usage', link: '/guide/usage' },
{ text: 'Configuration', link: '/guide/configuration' }
]
}],
diff --git a/docs/api/index.md b/docs/api/index.md
index 5998622..9d61eb0 100644
--- a/docs/api/index.md
+++ b/docs/api/index.md
@@ -4,26 +4,57 @@ The SoroSave SDK exports the following modules:
## Modules
-- [`SoroSaveClient`](/api/client) - Main client class
-- [`Types`](/api/types) - TypeScript interfaces and types
-- [`Utils`](/api/utils) - Utility functions
+- [`SoroSaveClient`](/api/client) — Main client class for contract interaction
+- [`Types`](/api/types) — TypeScript interfaces, types, and enums
+- [`Utils`](/api/utils) — Utility functions for formatting and calculations
-## Usage
+## Quick Import
```typescript
+// Core client
import { SoroSaveClient } from '@sorosave/sdk';
-import type { CreateGroupParams, SavingsGroup } from '@sorosave/sdk';
+
+// Types
+import type { CreateGroupParams, SavingsGroup, RoundInfo, SoroSaveConfig } from '@sorosave/sdk';
+
+// Enums
+import { GroupStatus } from '@sorosave/sdk';
+
+// Utilities
+import { formatAmount, parseAmount, getStatusLabel } from '@sorosave/sdk';
+
+// React hooks
+import { SoroSaveProvider, useGroup, useContribute, useMemberGroups } from '@sorosave/react';
```
-## Client Methods
+## Client Methods Overview
+
+### Write Methods (Transactions)
+
+| Method | Description | Access |
+|--------|-------------|--------|
+| `createGroup()` | Create a new savings group | Anyone |
+| `joinGroup()` | Join an existing group | Anyone |
+| `leaveGroup()` | Leave a group (while forming) | Members |
+| `startGroup()` | Start the savings cycle | Admin |
+| `contribute()` | Contribute to current round | Members |
+| `distributePayout()` | Distribute pot to recipient | Anyone |
+| `pauseGroup()` | Pause a group | Admin |
+| `resumeGroup()` | Resume a paused group | Admin |
+| `raiseDispute()` | Raise a dispute | Members |
+
+### Read Methods (Queries)
+
+| Method | Description | Returns |
+|--------|-------------|---------|
+| `getGroup()` | Get group details | `SavingsGroup` |
+| `getRoundStatus()` | Get round information | `RoundInfo` |
+| `getMemberGroups()` | Get all groups for a member | `number[]` |
+
+### Batch & Utility Methods
| Method | Description |
|--------|-------------|
-| `createGroup()` | Create a new savings group |
-| `joinGroup()` | Join an existing group |
-| `leaveGroup()` | Leave a group (while forming) |
-| `startGroup()` | Start the savings cycle |
-| `contribute()` | Make a contribution |
-| `distribute()` | Distribute funds to recipient |
-| `getGroup()` | Get group details |
-| `getGroups()` | List all groups |
+| `createBatchBuilder()` | Create a batch operation builder |
+| `buildBatchTransaction()` | Build a transaction from batch operations |
+| `setWalletAdapter()` | Set or change the wallet adapter |
diff --git a/docs/guide/usage.md b/docs/guide/usage.md
new file mode 100644
index 0000000..73e0166
--- /dev/null
+++ b/docs/guide/usage.md
@@ -0,0 +1,219 @@
+# Usage Guide
+
+Complete guide to using the SoroSave SDK for building savings group applications.
+
+## Initializing the Client
+
+```typescript
+import { SoroSaveClient } from '@sorosave/sdk';
+
+const client = new SoroSaveClient({
+ rpcUrl: 'https://soroban-testnet.stellar.org',
+ contractId: 'CBQ...YOUR_CONTRACT_ID',
+ networkPassphrase: 'Test SDF Network ; September 2015'
+});
+```
+
+## Using with React
+
+The SDK provides React hooks for easy frontend integration:
+
+```tsx
+import { SoroSaveProvider, useGroup, useContribute, useMemberGroups } from '@sorosave/react';
+
+function App() {
+ return (
+
Members: {group.members.length}/{group.maxMembers}
+Round: {group.currentRound}/{group.totalRounds}
+Status: {group.status}
+ +