尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Expedite a transaction, transfer, or payment. Install serves businesses that want liquidity on the ones they choose: an upfront loan from a lending vault on the XRP Ledger, paid back with interest that depends on how long the loan runs.
Test networks only. The app runs on XRPL Devnet, the one network with the Single Asset Vault (XLS-65) and Lending Protocol (XLS-66) amendments enabled. No real money moves.
Where things stand: STATUS.md. Repo rules: CLAUDE.md.
pnpm xrpl:setup, an approved request becomes one loan from a private, credential-gated vault series, and the borrower pays it back from their wallet. Interest follows the yearly rate in the deployment, prorated to the loan's length, which runs to the payment's due date. Automatic repayment when the original payment arrives is still to come.| On screen | In the code |
|---|---|
| loan | receivables row, type = invoice, card_settlement, reimbursement, or other |
| payer, payment reference, due date | payerName (optional payerWallet), reference, dueDate |
| approver sign-off | guaranty, by the guarantor |
| You got the loan / Paid | Funded |
| Closed out | Settled, Recovered |
| Approver asked to cover | GuarantorCalled |
Needs Node 24, pnpm 10, Deno 2, Docker, and the Supabase CLI (2.122+).
pnpm install
pnpm local
pnpm local starts Supabase and the edge functions, signs up four demo people (a borrower, an approver, a lender, an admin) whose wallets are funded on Devnet, adds loans of each kind in several states, and serves the site at http://localhost:3000. The sign-in screen offers the demo people as one-click buttons, so you don't need a Privy app locally. The keys it uses (a Privy test key and a wallet encryption key) are generated into apps/web/e2e/.cache/, which git ignores.
Without a Privy app the local build only offers the demo people. To sign in with Google or an emailed code:
http://localhost:3000 under Configuration > App settings > Domains (if you've listed any domains there), and turn on Return user data in an identity token..env (gitignored) as both NEXT_PUBLIC_PRIVY_APP_ID and PRIVY_APP_ID. The backend checks tokens against the app's published keys, so no secret or verification key is needed.pnpm local again. It uses that app, so Google and email work and the demo buttons go away. DEMO_PEOPLE=1 pnpm local brings the demo people back even with a Privy app set.On XRPL (LendingProtocolV1_1) only a closed-ended vault can lend: it takes deposits, then lends, then pays out. So lending runs in rolling series, each its own vault with a loan broker and first-loss cover. Lenders deposit into the series taking deposits and withdraw when theirs pays out; loans come from a series that's lending.
pnpm xrpl:setup # issuer, broker, credential domain, and a first series (seeds go in .env)
pnpm xrpl:setup series --deposit-minutes 3 --lend-days 200 --seed 25000 --wait # a series pre-filled by the house lender, lending in ~3 minutes
pnpm xrpl:setup series --deposit-minutes 10080 --lend-days 200 # a series taking deposits for a week
pnpm xrpl:setup --fresh # new accounts, e.g. after a Devnet reset
The hosted functions need BROKER_SEED and ISSUER_SEED from .env as Supabase secrets.
Tests:
supabase start && supabase db reset && supabase test db
(cd supabase/functions && deno test --allow-all)
pnpm test && pnpm lint && pnpm typecheck
Every variable is listed, empty, in .env.example. The ones that matter:
| Variable | Where | What |
|---|---|---|
NETWORK, NEXT_PUBLIC_NETWORK | functions, web | xrpl-devnet |
PRIVY_APP_ID | functions | Privy app ID; tokens are checked against its published keys (PRIVY_VERIFICATION_KEY optionally pins one key). Turn on "Return user data in an identity token" in the Privy dashboard. |
NEXT_PUBLIC_PRIVY_APP_ID | web | The same Privy app |
WALLET_ENCRYPTION_KEY | functions | 32 random bytes, base64 (openssl rand -base64 32). Encrypts every custodial seed. |
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY | web | Supabase project; the anon key only reaches functions |
NEXT_PUBLIC_DEMO_SESSIONS | web | true only for local demo builds |