Skip to content

Commit 47a3ca2

Browse files
committed
bitrequest
0 parents  commit 47a3ca2

113 files changed

Lines changed: 63000 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
proxy/v1/cache/
2+
proxy/v1/ln/api/cache
3+
proxy/v1/inv/api/cache
4+
.DS_Store

.htaccess

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
RewriteEngine on
2+
RewriteRule ^(.*)4bR(.*)$ https://bit.ly/$1 [L,R=301]
3+
RewriteRule ^apple-app-site-association$ .well-known/apple-app-site-association.json [NC,L]
4+
RewriteRule ^.well-known/apple-app-site-association$ .well-known/apple-app-site-association.json [NC,L]
5+
Header set Access-Control-Allow-Origin "*"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"applinks":{"apps":[],"details":[{"appID":"HHT3J9G4FX.io.bitrequest.app","paths":["NOT /_/*","/*"]}]}}

.well-known/assetlinks.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[{
2+
"relation": ["delegate_permission/common.handle_all_urls"],
3+
"target" : { "namespace": "android_app", "package_name": "io.bitrequest.app",
4+
"sha256_cert_fingerprints": ["4C:93:4B:73:94:95:E3:65:FF:02:BB:CB:02:FF:8E:8B:93:CF:93:41:2B:E3:8E:F4:2B:00:B1:95:B3:E5:6C:99", "F2:01:15:1D:12:F5:8A:4E:1F:47:2D:55:43:37:99:DF:F7:43:95:0E:14:E1:B5:F8:6C:A7:44:43:09:82:B5:5C"] }
5+
}]

LICENSE

Lines changed: 661 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
[<img src="https://developer.apple.com/app-store/marketing/guidelines/images/badge-download-on-the-app-store.svg" height="50">](https://apps.apple.com/app/id1484815377)
2+
[<img src="https://upload.wikimedia.org/wikipedia/commons/7/78/Google_Play_Store_badge_EN.svg" height="50">](https://play.google.com/store/apps/details?id=io.bitrequest.app)
3+
4+
* [About](https://github.com/bitrequest/bitrequest.github.io/wiki)
5+
* [Privacy / Disclaimer](https://github.com/bitrequest/bitrequest.github.io/wiki/Privacy)
6+
* [Terms and conditions](https://github.com/bitrequest/bitrequest.github.io/wiki/Terms-and-conditions)
7+
8+
---
9+
10+
## Bitrequest
11+
12+
Create and share cryptocurrency payment requests. Non-custodial, privacy-focused app for accepting crypto payments — in-store or online.
13+
14+
**[Try it now → bitrequest.io](https://bitrequest.io)**
15+
16+
---
17+
18+
## Use Cases
19+
20+
### Point of Sale
21+
Accept crypto payments at your shop, market stall, or business. Get instant payment notifications and generate receipts.
22+
23+
### Share Payment Requests
24+
Send payment requests to friends or customers via link, QR code, or NFC. Lock amounts to fiat value to avoid volatility.
25+
26+
### E-commerce
27+
Integrate crypto checkout into your online store.
28+
29+
---
30+
31+
## Supported Cryptocurrencies
32+
33+
- **Bitcoin** — Including Lightning Network (LND, LNbits, LNURL, Boltcard/NFC)
34+
- **Ethereum** — Plus L2 networks: Base, Arbitrum, Polygon, BSC, and ERC-20 tokens
35+
- **Litecoin**
36+
- **Monero** — Private payments with view-key scanning
37+
- **Kaspa**
38+
- **Bitcoin Cash**
39+
- **Dogecoin**
40+
- **Dash** — With InstantSend
41+
- **Nano** — Instant and feeless
42+
- **Nimiq**
43+
44+
---
45+
46+
## Features
47+
48+
### Requests
49+
- Create payment requests in crypto or fiat (170+ currencies)
50+
- Share via URL, QR code, or NFC
51+
- Real-time payment notifications
52+
- Request history, receipts, and CSV export
53+
54+
### Addresses
55+
- Manage multiple wallet addresses per currency
56+
- Generate addresses from seed phrase
57+
- Random address selection for privacy
58+
59+
### Settings
60+
- Real-time exchange rates (170+ fiat currencies)
61+
- PIN protection with Admin/Cashier modes
62+
- Team invites for shared access
63+
- Backup to file or Google Drive
64+
- Connect your own nodes for full control
65+
66+
---
67+
68+
## Privacy & Security
69+
70+
- **Non-custodial** — Your keys stay on your device
71+
- **No account required** — Works offline after install
72+
- **Open source** — Fully auditable code
73+
- **TOR support** — Optional privacy routing
74+
75+
---
76+
77+
## Install
78+
79+
- **Web:** Visit [bitrequest.io](https://bitrequest.io) and install as app
80+
- **iOS:** [App Store](https://apps.apple.com/app/id1484815377)
81+
- **Android:** [Google Play](https://play.google.com/store/apps/details?id=io.bitrequest.app)
82+
83+
---
84+
85+
## Translations
86+
87+
Bitrequest is available in English, Dutch, French, Spanish, and German. Want to add your language? See [`TRANSLATE_PROMPT.md`](TRANSLATE_PROMPT.md) — a complete guide for generating and submitting a new translation file.
88+
89+
---
90+
91+
## For contributors
92+
93+
Code lives under [`assets/`](assets/) — first-party app code in [`assets/js/bitrequest/`](assets/js/bitrequest/), vendored and utility libs in [`assets/js/lib/`](assets/js/lib/). The PHP proxy sits in [`proxy/`](proxy/). Start with [`ARCHITECTURE.md`](ARCHITECTURE.md) for a tour of the codebase: file responsibilities, the two globals, the request lifecycle, and the proxy contract. For adding a coin specifically, see [`bitrequest_add_coin_guide.md`](bitrequest_add_coin_guide.md).
94+
95+
---
96+
97+
## Related
98+
99+
- [Wiki & Documentation](https://github.com/bitrequest/bitrequest.github.io/wiki)
100+
- [bip39-utils-js](https://github.com/bitrequest/bip39-utils-js) — HD wallet library
101+
- [crypto-utils-js](https://github.com/bitrequest/crypto-utils-js) — Crypto utilities
102+
- [xmr-utils-js](https://github.com/bitrequest/xmr-utils-js) — Monero utilities
103+
104+
---
105+
106+
## License
107+
108+
AGPL-3.0
109+
110+
---
111+
112+
*Lightweight crypto payments for everyone — [bitrequest.io](https://bitrequest.io)*

TRANSLATE_PROMPT.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# Bitrequest Translation Prompt
2+
3+
Use this prompt with an AI assistant (Claude, ChatGPT, etc.) to generate a translation file for Bitrequest.
4+
5+
## Instructions
6+
7+
1. Copy the prompt below.
8+
2. Replace `[YOUR LANGUAGE]`, `[COUNTRYCODE]`, and `[FLAG]` with your language, ISO 639-1 code, and country flag emoji (e.g. `German` / `de` / `🇩🇪`, `Japanese` / `ja` / `🇯🇵`, `Portuguese` / `pt` / `🇵🇹`).
9+
3. Paste the prompt into an AI assistant along with the English source file (`assets/js/bitrequest/lang/en.js`). Optionally include existing translations (e.g. `_nl.js`, `_fr.js`, `_es.js`) for additional context.
10+
4. Review the output carefully — AI translations need human verification, especially for crypto terminology.
11+
5. Test the file in Bitrequest before submitting a pull request.
12+
13+
---
14+
15+
## The Prompt
16+
17+
```
18+
You are translating a JavaScript language file for Bitrequest, an open-source, non-custodial cryptocurrency point-of-sale app. Translate the attached English file into [YOUR LANGUAGE] (country code: [COUNTRYCODE]).
19+
20+
## Critical rules
21+
22+
1. **Do NOT translate variables.** Variables like `data.currency`, `data.amount`, `data.url`, `data.address`, etc. must remain exactly as they are. You may rearrange their position to fit natural sentence structure in [YOUR LANGUAGE].
23+
24+
2. **Do NOT translate object keys.** Only translate the string values (right side of the colon).
25+
26+
3. **Do NOT translate HTML tags or attributes.** Preserve all `<span>`, `<a>`, `<br/>` tags and their attributes (`id`, `class`, `data-*`, `href`, `target`) exactly as they are.
27+
28+
4. **Rename the function** from `lang_en` to `lang_[COUNTRYCODE]`.
29+
30+
5. **Keep string lengths similar** to the English original where possible (UI space is limited).
31+
32+
6. **Leave blank** any string you're uncertain about — blanks will default to English.
33+
34+
7. **Preserve the ternary operator** in `sharetitlename` exactly as structured, only translating the string portions.
35+
36+
## Cryptocurrency terminology guidelines
37+
38+
This is a cryptocurrency app. Many technical terms should NOT be literally translated but kept in English or use the established term in the [YOUR LANGUAGE]-speaking crypto community. Research how each term is actually used by [YOUR LANGUAGE]-speaking crypto users, developers, and media.
39+
40+
### Terms that are typically kept in English across most languages:
41+
- blockchain (do NOT literally translate to "chain of blocks" equivalent)
42+
- Lightning Network / Lightning
43+
- SegWit / Legacy
44+
- Xpub / Xpriv / BIP32 / BIP39
45+
- token / ERC20
46+
- viewkey
47+
- macaroon
48+
- satoshis / sats
49+
- proxy / API / RPC / REST
50+
- websocket
51+
- blockexplorer
52+
- QR / QR code
53+
- CSV
54+
- PIN
55+
- NFC
56+
57+
### Terms that are usually translated (verify for your language):
58+
- wallet → find the established crypto term (e.g. Spanish: "monedero", French: "portefeuille", Dutch: "wallet")
59+
- private key / public key → usually translated
60+
- secret phrase / seed phrase → usually translated
61+
- node → check if translated or kept as "node"
62+
- transaction → usually translated
63+
- address → usually translated
64+
- invoice → depends on language and context (Lightning invoices may stay as "invoice")
65+
- Layer 2 → check if translated (e.g. Spanish: "Capa 2", French: "Couche 2")
66+
- fiat → usually kept as "fiat"
67+
- derivation path → technical, check community usage
68+
- confirmations → usually translated
69+
- point of sale → usually translated
70+
71+
### How to decide:
72+
- Search crypto news sites, exchanges (Binance, Coinbase), and community forums in [YOUR LANGUAGE]
73+
- Check if Bitcoin/Monero/Ethereum documentation has official translations
74+
- Check the Monero Localization Workgroup on GitHub for terminology guides
75+
- When in doubt, keep the English term — the crypto community is used to English jargon
76+
77+
## Context about the app
78+
79+
- Bitrequest is a point-of-sale payment request app (not a wallet that sends funds)
80+
- "request" in this app means a payment request / payment solicitation
81+
- It supports Bitcoin (on-chain + Lightning Network), Monero, and ERC-20 tokens
82+
- It has a "cashier mode" for team members with restricted access
83+
- "secret phrase" refers to a BIP39 12-word mnemonic seed
84+
- "proxy" refers to a self-hosted PHP server that relays API calls and Lightning node connections
85+
- The app runs as a PWA (Progressive Web App) and has iOS/Android apps
86+
87+
## Output format
88+
89+
Return the complete translated JavaScript file, ready to use. Keep all comments in English (they are developer-facing). Make sure the file is syntactically valid JavaScript.
90+
```
91+
92+
---
93+
94+
## After generating the translation
95+
96+
1. Save the output as `assets_js_bitrequest_lang_[COUNTRYCODE].js`
97+
2. Register your language in `assets/js/bitrequest/lang_meta.js` by adding an entry to the `LANG_META` object:
98+
```js
99+
"[COUNTRYCODE]": {"lang": "[YOUR LANGUAGE]", "flag": "[FLAG]", "fn": "lang_[COUNTRYCODE]"}
100+
```
101+
Bitrequest loads only the active language at runtime — there's no longer a `<script>` tag to add to `index.html`. The dynamic loader looks up the `fn` field to resolve which function the file defines.
102+
3. **Test everything** — verify variables render correctly, strings fit in the UI, and crypto terminology is natural. Pick your language in settings; the loader will fetch your file on demand.
103+
4. Submit a pull request to the [Bitrequest repository](https://github.com/bitrequest/bitrequest.github.io)

_config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
include: [".well-known"]

apple-app-site-association

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"applinks":{"apps":[],"details":[{"appID":"HHT3J9G4FX.io.bitrequest.app","paths":["NOT /_/*","/*"]}]}}

apple-icon-114x114.png

10.1 KB
Loading

0 commit comments

Comments
 (0)