Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
129 lines (125 loc) · 6.44 KB
/
Copy pathindex.html
File metadata and controls
129 lines (125 loc) · 6.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Kinlock docs</title>
<meta name="description" content="How Kinlock's four repos fit together: contracts, SDK, app, and registry." />
<link rel="icon" href="favicon.svg" type="image/svg+xml" />
<link rel="icon" href="favicon-32.png" sizes="32x32" type="image/png" />
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<div class="banner">Testnet only. No real money moves here. <a href="https://kinlock-app.vercel.app">Try the live app</a></div>
<header class="site">
<a class="brand" href="index.html">Kinlock docs</a>
<button type="button" class="nav-toggle" aria-expanded="false" aria-controls="site-nav" aria-label="Open menu">
<span></span><span></span><span></span>
</button>
<nav class="site" id="site-nav">
<a href="index.html" aria-current="page">Overview</a>
<a href="contracts.html">Contracts</a>
<a href="sdk.html">SDK</a>
<a href="app.html">App</a>
<a href="registry.html">Registry</a>
<a href="https://github.com/Kinlock-Org">GitHub ↗</a>
</nav>
</header>
<main>
<section class="hero">
<h1 class="reveal">Lock USDC on Stellar for a verified payee, anywhere in the world.</h1>
<p class="lede reveal reveal-1">
This is the documentation portal for Kinlock's four repositories: what each one owns, how
they depend on each other, and where to go for the full technical detail.
</p>
<div class="cta-row reveal reveal-2">
<a class="btn primary" href="https://kinlock-app.vercel.app">Try the live app</a>
<a class="btn ghost" href="https://github.com/Kinlock-Org">View on GitHub</a>
</div>
</section>
<section>
<h2>How the repos fit together</h2>
<p>
One product, four repositories, in a fixed dependency order. Each repo owns one layer; none
of them duplicate another's responsibility.
</p>
<div class="flow" aria-hidden="true">
<div class="node emphasis">contracts</div>
<div class="arrow">→</div>
<div class="node">bindings</div>
<div class="arrow">→</div>
<div class="node emphasis">sdk</div>
<div class="arrow">→</div>
<div class="node emphasis">app</div>
</div>
<p>
<strong>registry</strong> sits outside that chain: it's public payee data (schools,
landlords) that the app and indexer read, bound to the contract by a hash check, not code
that other repos import.
</p>
</section>
<section>
<h2>The four repos</h2>
<div class="repo-grid">
<div class="card">
<h3><a href="contracts.html">kinlock-contracts</a></h3>
<p>The Soroban contract that actually holds and moves funds: registry and vault modules, tests, deploy scripts, generated TypeScript bindings.</p>
<div class="meta">Rust · Soroban · <a href="https://github.com/Kinlock-Org/kinlock-contracts">GitHub ↗</a></div>
</div>
<div class="card">
<h3><a href="sdk.html">kinlock-sdk</a></h3>
<p>The TypeScript client every other layer talks to the contract through, plus the event indexer that mirrors chain data for lists.</p>
<div class="meta">TypeScript · v0.3.0 · <a href="https://github.com/Kinlock-Org/kinlock-sdk">GitHub ↗</a></div>
</div>
<div class="card">
<h3><a href="app.html">kinlock-app</a></h3>
<p>The Next.js web app: senders lock funds, payees claim them, anyone can verify a receipt.</p>
<div class="meta">Next.js · <a href="https://kinlock-app.vercel.app">Live demo ↗</a> · <a href="https://github.com/Kinlock-Org/kinlock-app">GitHub ↗</a></div>
</div>
<div class="card">
<h3><a href="registry.html">kinlock-registry</a></h3>
<p>The public, schema-validated list of verified payees, per country, bound to the on-chain record by a hash.</p>
<div class="meta">JSON Schema · <a href="https://github.com/Kinlock-Org/kinlock-registry">GitHub ↗</a></div>
</div>
</div>
</section>
<section>
<h2>Non-negotiable principles</h2>
<p>These hold across all four repos, not just the contract:</p>
<ul>
<li><strong>Chain is truth.</strong> Pages that move money read chain state directly, never a database cache.</li>
<li><strong>Non-custodial.</strong> No service holds a user's keys or funds; only the contract does, under its own rules.</li>
<li><strong>No privileged path to locked funds.</strong> Funds leave the contract only to the payout address snapshotted at creation, or back to the sender.</li>
<li><strong>Honest receipts.</strong> A receipt proves payment to a verified payee. It is not proof the money was spent the way anyone expected.</li>
<li><strong>Country-agnostic core.</strong> Country and currency are registry data, never hard-coded in the contract, SDK, or app.</li>
</ul>
<p>
Full depth lives in the canonical docs:
<a href="https://github.com/Kinlock-Org/.github/blob/main/docs/ARCHITECTURE_ESSENTIALS.md">ARCHITECTURE_ESSENTIALS.md</a>,
<a href="https://github.com/Kinlock-Org/.github/blob/main/docs/ARCHITECTURE.md">ARCHITECTURE.md</a>,
<a href="https://github.com/Kinlock-Org/.github/blob/main/docs/PRD.md">PRD.md</a>, and the
<a href="https://github.com/Kinlock-Org/.github/tree/main/docs/adr">ADR index</a>. This site
summarizes; those files are the source of truth.
</p>
</section>
<section>
<h2>Found a documentation gap?</h2>
<p>
This repo is also where documentation issues across all of Kinlock get filed and picked up,
not just this site. Missing, unclear, or outdated docs in any repo: file it here with the
area tagged, rather than opening a one-off issue scattered across four different trackers.
</p>
<div class="cta-row">
<a class="btn primary" href="https://github.com/Kinlock-Org/Kinlock-Org.github.io/issues/new/choose">File a documentation issue</a>
<a class="btn ghost" href="https://github.com/Kinlock-Org/Kinlock-Org.github.io/blob/main/CONTRIBUTING.md">How to contribute</a>
</div>
</section>
</main>
<footer class="site">
<span>Kinlock is testnet-only, unaudited software. Don't rely on it for anything real yet.</span>
<span><a href="https://github.com/Kinlock-Org/Kinlock-Org.github.io">Source for this site</a></span>
</footer>
<script src="nav.js" defer></script>
</body>
</html>