<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinos-server.git/index.ts, branch regtest-fulcrum</title>
<subtitle>coinos server — legacy coinos.io backend (Lightning, on-chain, Liquid)</subtitle>
<id>https://git.coinos.io/coinos-server.git/atom?h=regtest-fulcrum</id>
<link rel='self' href='https://git.coinos.io/coinos-server.git/atom?h=regtest-fulcrum'/>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/'/>
<updated>2026-06-13T21:21:49Z</updated>
<entry>
<title>users: add authenticated self-delete endpoint</title>
<updated>2026-06-13T21:21:49Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-06-13T21:21:49Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=2548f7578ab879bc7eb292462b13f41e7f3112e5'/>
<id>urn:sha1:2548f7578ab879bc7eb292462b13f41e7f3112e5</id>
<content type='text'>
POST /delete (auth) wipes every key tied to the calling user, mirroring
scripts/delall-legacy.ts: user records, payments/invoices, sub-accounts,
NWC apps, nostr follow graph + nip5. Gated by typing the username and
refuses while balance+pending &gt; 10k sats so funds can't be destroyed by
accident.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>payments: guard /replay double-credit race with SET NX idempotency</title>
<updated>2026-06-13T21:21:44Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-06-13T21:21:44Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=ca28c19fe26d3f81ae62d2d3f0dc8b175849a9a8'/>
<id>urn:sha1:ca28c19fe26d3f81ae62d2d3f0dc8b175849a9a8</id>
<content type='text'>
getPayment() pre-check in the lightning listener/replay isn't atomic, so
concurrent re-credits of the same settlement each ran incrBy. Claim each
lightning/bolt12 settlement with an atomic SET NX on credited:&lt;ref&gt;
(ref = preimage) and bail if already claimed. Also disable the /replay
route that triggered it.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>remove /gateway endpoint</title>
<updated>2026-05-18T06:21:39Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-05-18T06:21:39Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=3c4d0b6914bbc7ecf49312a264d55af3c2e2d7a6'/>
<id>urn:sha1:3c4d0b6914bbc7ecf49312a264d55af3c2e2d7a6</id>
<content type='text'>
Unauthenticated arbitrary db.set abuse vector. Exploited to inflate user
balances and override safety controls (bitcoin:limit, limit, hardfreeze,
freeze) in real time, leading to a hot-wallet drain. Route and handler
both fully removed.

Co-Authored-By: Claude Opus 4.7 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>check listpays before reversing</title>
<updated>2026-04-25T16:21:14Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-04-25T16:21:14Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=669b13189180ea40f73e7202052f04039cfc9dac'/>
<id>urn:sha1:669b13189180ea40f73e7202052f04039cfc9dac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>lnurl proxy</title>
<updated>2026-03-28T06:41:08Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-03-28T06:41:08Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=ef06f2eb48581c201e62fc2cde27b106e898e54d'/>
<id>urn:sha1:ef06f2eb48581c201e62fc2cde27b106e898e54d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ensure lightning payments get processed</title>
<updated>2026-03-20T06:51:57Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-03-20T06:51:57Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=7f1be926fc1acc41776b7ba6f97b762b4586d8d1'/>
<id>urn:sha1:7f1be926fc1acc41776b7ba6f97b762b4586d8d1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>remove logs</title>
<updated>2026-03-17T06:53:13Z</updated>
<author>
<name>Adam Soltys</name>
<email>asoltys@gmail.com</email>
</author>
<published>2026-03-17T06:53:13Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=92e7d1564deb25f9e58e3b268c077018c4b2c4c4'/>
<id>urn:sha1:92e7d1564deb25f9e58e3b268c077018c4b2c4c4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>adjust ln minfee</title>
<updated>2026-03-15T22:49:17Z</updated>
<author>
<name>Adam Soltys</name>
<email>asoltys@gmail.com</email>
</author>
<published>2026-03-15T22:49:17Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=74af7b1d0922e740c0358dfd131776fd7c877767'/>
<id>urn:sha1:74af7b1d0922e740c0358dfd131776fd7c877767</id>
<content type='text'>
</content>
</entry>
<entry>
<title>health check</title>
<updated>2026-02-06T16:55:45Z</updated>
<author>
<name>Adam Soltys</name>
<email>asoltys@gmail.com</email>
</author>
<published>2026-02-06T16:55:45Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=9089698e8df9d0c09c165c45eb6b05335a818699'/>
<id>urn:sha1:9089698e8df9d0c09c165c45eb6b05335a818699</id>
<content type='text'>
</content>
</entry>
<entry>
<title>challenge verify</title>
<updated>2025-10-01T14:33:54Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2025-10-01T14:33:45Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-server.git/commit/?id=7de58997e771312e41bca5cacca01ce4cbc990af'/>
<id>urn:sha1:7de58997e771312e41bca5cacca01ce4cbc990af</id>
<content type='text'>
</content>
</entry>
</feed>
