* fix(wallet): keep jars visible and clickable during background refetch Gate the jars grid on isLoading instead of isFetching, matching the balance display above it. isFetching is true on every background refetch, so the jars (and the Jar Details overlay they open) were being replaced by a spinner any time wallet data refreshed, even though the previous jars were still valid to show. * test(wallet): assert jars stay visible during background refetch Update the jars spinner test to match the new isLoading-based gate. The test now asserts that a jar name stays on screen and the background refetch still calls refetch on click, instead of asserting a spinner appears. * test(wallet): assert jar overlay opens on click during background refetch |
||
|---|---|---|
| .github | ||
| .husky | ||
| .storybook | ||
| .tx | ||
| docker/regtest | ||
| docs | ||
| public | ||
| scripts | ||
| src | ||
| .env | ||
| .env.development | ||
| .env.test | ||
| .gitignore | ||
| .npmrc | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc.json | ||
| CHANGELOG.md | ||
| components.json | ||
| CONTRIBUTING.md | ||
| eslint.config.js | ||
| index.html | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
| vitest.setup.ts | ||
| vitest.shims.d.ts | ||
⚠️ Jam is beta software. Use with caution. ⚠️
Installation · Features · Contribute · Development
Jam is a web interface for JoinMarket NG focusing on user-friendliness and ease-of-use. It aims to provide sensible defaults and be easy to use for beginners while still having the features advanced users expect.
- 💬 Join our Matrix room to get help and contribute!
- 📚 Check out the documentation and the wiki for resources such as meeting notes, call recordings, ideas, and discussions.
📸
📦 Installation
We're aiming to make Jam available for different node systems to make installation as painless as possible. If your node system of choice is missing, feel free to integrate it and let us know so we can add it here.
![]() |
![]() |
![]() |
![]() |
||
|---|---|---|---|---|---|
| RaspiBlitz: v1.7.2* | Umbrel: v0.4.15 | Citadel: v0.0.1 | MyNode: v0.3.05 | Start9: v0.3.3 | RaspiBolt: v3 |
Refer to the installation docs for more information on integrations as well as manual installation instructions.
🍊 Features
- Spending from the wallet
- Spending from the wallet via collaborative transactions
- Running the yield generator
- Scheduled transactions
- Viewing the orderbook
- Support for fidelity bonds
- PayJoin support
Refer to the milestones for a rough roadmap. Feature requests are tracked as issues.
🧑💻 Contribute
This is a free and open-source software project and we love receiving pull-requests, bug reports, ideas, and feedback from everyone.
There are many ways you can contribute: testing, sharing ideas, writing documentation, creating tutorials, and—of course—writing code. Refer to the general contribution guidelines to get started.
🛠️ Development
Want to get your hands dirty with code? Great! CONTRIBUTING.md and docs/developing.md are where it's at.
🏛️ History
This project builds upon the jm-web-client which was developed by Shobhitaa, Abhishek, and waxwing himself. Many people contributed over time, some of which are listed here.
Jam and JoinMarket NG are separate projects. For more information on JoinMarket NG, see the JoinMarket NG GitHub Page.



