Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 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 |