# urriki1502/wam-sdk architecture

> Architecture diagram of the GitHub repository urriki1502/wam-sdk, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/urriki1502/wam-sdk
- Repository: https://github.com/urriki1502/wam-sdk

## Overview

WAM SDK is a typed Python client for chain-pinned node and wallet operations. An application configures a client, checks node and wallet readiness, then reads balance, creates a payment request, sends funds, or observes receipts; PaymentTracker adds freshness and reorg-review state for fulfillment decisions. Exact Amount values and typed payment models support these operations, while Transport handles bounded loopback JSON-RPC. The README is empty and only selected sources were inspected, so links to configuration, models, and privacy behavior follow the module names and documented package capabilities; the devtools test harness is excluded.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Application API"]
  node_client["WAM Client"]
  node_config["Configuration"]
end

subgraph group_payments["Wallet Payments"]
  node_wallet["Wallet Operations"]
  node_tracker["Payment Tracker"]
  node_paymentmodels["Payment Models"]
end

subgraph group_rpc["RPC Boundary"]
  node_transport["RPC Transport"]
end

subgraph group_types["Shared Types"]
  node_amount["Exact Amounts"]
  node_privacy["Privacy Controls"]
  node_errors["Safe Errors"]
end

node_app(("Application"))
node_node(("WAM Node"))

node_app -->|"configures and calls"| node_client
node_client -->|"reads settings"| node_config
node_client -->|"issues RPCs"| node_transport
node_wallet -->|"checks readiness"| node_client
node_wallet -->|"issues wallet RPCs"| node_transport
node_wallet -->|"converts values"| node_amount
node_wallet -->|"builds receipts"| node_paymentmodels
node_tracker -->|"refreshes observations"| node_wallet
node_tracker -->|"tracks receipt"| node_paymentmodels
node_transport -->|"uses endpoint and auth"| node_config
node_transport -->|"sends JSON-RPC"| node_node
node_node -->|"returns RPC response"| node_transport

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_client,node_config toneBlue
class node_wallet,node_tracker,node_paymentmodels toneAmber
class node_transport toneMint
class node_amount,node_privacy,node_errors toneRose
class node_app,node_node toneIndigo
```

## Components

### Application API

- **WAM Client**
- **Configuration**

### Wallet Payments

- **Wallet Operations**
- **Payment Tracker**
- **Payment Models**

### RPC Boundary

- **RPC Transport**

### Shared Types

- **Exact Amounts**
- **Privacy Controls**
- **Safe Errors**

### Other components

- **Application**
- **WAM Node**

## Connections

- Application → WAM Client: configures and calls
- WAM Client → Configuration: reads settings
- WAM Client → RPC Transport: issues RPCs
- Wallet Operations → WAM Client: checks readiness
- Wallet Operations → RPC Transport: issues wallet RPCs
- Wallet Operations → Exact Amounts: converts values
- Wallet Operations → Payment Models: builds receipts
- Payment Tracker → Wallet Operations: refreshes observations
- Payment Tracker → Payment Models: tracks receipt
- RPC Transport → Configuration: uses endpoint and auth
- RPC Transport → WAM Node: sends JSON-RPC
- WAM Node → RPC Transport: returns RPC response
