Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기The market and intelligence layer for stocks on Solana. One company, every issuer representation — markets, research, calendar, trade and yield across 1,339 verified companies. Stocklana hackathon submission.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Henar is the market and intelligence layer for stocks on Solana.
One company. Every representation. One market.
A tokenized stock exists several times over. NVIDIA is NVDAx on xStocks, NVDA on Backpack Securities, and NVDAon on Ondo — different mints, different token programs, different issuer mechanics, different liquidity. Every venue today asks the user to pick a token. Henar asks them to pick a company, then does the comparison work underneath.
• Live application
• Markets
Henar is not a DEX for tokenized stocks. It is the layer a user goes through before and after the trade:README 전문 보기 ↗Henar is the market and intelligence layer for stocks on Solana.
One company. Every representation. One market.
A tokenized stock exists several times over. NVIDIA is NVDAx on xStocks, NVDA on Backpack Securities, and NVDAon on Ondo — different mints, different token programs, different issuer mechanics, different liquidity. Every venue today asks the user to pick a token. Henar asks them to pick a company, then does the comparison work underneath.
Henar is not a DEX for tokenized stocks. It is the layer a user goes through before and after the trade:
| Discover | 1,339 companies and ETFs, 2,212 verified issuer mints, grouped by underlying company |
| Research | Financials, earnings, dividends, filings and news from SEC EDGAR; an earnings and macro calendar |
| Compare | xStocks, Backpack and Ondo side by side — price, spread, liquidity, route, redemption terms, and each issuer's own backing and custody |
| Trade | Market, limit and DCA execution, priced by Henar's own routing engine against Raydium, Orca, Meteora and byreal and ranked beside the aggregators |
| Pre-IPO | Private-market exposure from PreStocks and Tessera, priced against provider marks and Henar's own routes |
| Earn | Yield strategies that turn idle USDC into stock exposure |
| Manage | Holdings, protocol positions and settlement receipts in one place |
The unit of the product is the company, not the mint. Issuer differences are preserved and surfaced where they matter — Henar normalizes the experience without claiming that one issuer's product is legally or technically the same as another's.
Henar quotes Solana venues directly rather than reselling an aggregator's answer, and it only executes against liquidity it has re-read from chain.
Venues quoted in-process. Raydium (CLMM and CPMM), Orca Whirlpools, Meteora (DLMM, DAMM v2, DBC) and byreal each have their own adapter that prices against pool state. Jupiter, OpenOcean and a firm-RFQ adapter quote alongside them as competing candidates, so an aggregator wins a trade only when it actually returns more.
Verified liquidity only. The pool registry holds 1,512 catalogued pools (598 Raydium, 473 Meteora, 420 Orca, 21 byreal). 700 are ONCHAIN_VERIFIED in the committed snapshot, and the pass runs again on every deploy (prebuild), so the live count is whatever chain agreed with at build time. Verified means the pool account and both mint accounts were re-read from chain and the pair the pool actually trades was decoded from its own layout and matched against the pair the registry claims. A pool whose layout cannot be decoded stays DISCOVERED and cannot back a Henar-native trade. src/data/router/mints.json carries 2,369 verified mint records, each with the decimals, token program, Token-2022 extensions and the slot the facts were read at. Nothing is inferred or defaulted; a mint with missing facts stays unverified and is not routable.
Route construction. Beyond single-venue quotes the engine builds two further shapes, each reported with its own measured improvement:
Execution guard. Before anything is signed, a route passes quote freshness against the current slot, a user slippage ceiling, a separate tighter ceiling on the intermediate hop of a path, and a build-and-simulate pass that constructs the real transaction and checks the simulated balance change on the exact destination token account named in the plan. Any failure demotes the route to non-selectable. Every candidate is reported with an execution capability: HENAR_NATIVE, EXTERNAL_EXECUTABLE or QUOTE_ONLY.
Selection is by best obtainable net output. The Trade quote list ranks candidates on what the user would actually receive after venue cost and the 10 bps market fee, and execution follows that ranking. The fee is applied to every candidate, including Henar's own routes, so it cannot bias the comparison. A route that prices well but is not reachable is shown and labelled, never selected.
What the measurements say. Henar native clears the guard on about 40% of observations overall, and that rate falls with size: on a 196-observation matrix across four sizes and both sides it was approved on 38 of 49 rows at $10 and on none at all at $50,000, where either no native venue quotes or the price impact exceeds the ceiling. Depth, not routing, is the binding constraint at size, and the aggregator wins those trades. The benchmark doc states the sample size and the failures alongside the wins, and currently withholds the head-to-head win rate: the last full run predates a fix to how Jupiter was quoted, and a figure measured against a stale comparator is not worth publishing. See the benchmark matrix and architecture §10.
Henar shows verified data or it shows nothing. Sector classification comes from each company's SEC-filed SIC code. Earnings come from filed XBRL facts. Prices and routes come from live quotes against exact verified mints. Where a source is not connected, the interface says so rather than estimating — "Unavailable", "Coming soon" and "External opportunity" are real states in this product, not placeholders.
The website is a public development preview. Market discovery and data integrations are live where a verified source is available. The custom Anchor program and settlement worker are implemented for integration testing but are not enabled for public mainnet deposits. Missing quotes, balances, APY, or issuer capabilities are shown as unavailable rather than estimated.
The candidate V1 contract manifest contains 39 Backpack stocks with matched execution requirements. Catalog membership does not guarantee liquidity, issuer eligibility, redemption access, or an executable route.
Routing is live in production: Henar quotes its own venues, ranks them against the aggregators, and native execution is enabled. The gate-by-gate record of what has actually run against mainnet, including what is still pending, is in live validation. Benchmarks in this repository are stated with their sample size and their failures, not only their wins.
Use Node.js 22:
npm ci
cp .env.example .env.local
npm run dev
Server credentials belong in .env.local. Private keys must never be placed in the frontend, Vercel environment, repository, or chat.
The routing engine is a workspace of small packages rather than one module:
packages/router-core | Types, pool and mint registries, on-chain pool and mint verification, pool-layout decoding, split and path construction, request caching |
packages/execution-guard | Freshness, slippage and intermediate-hop policy; the verdict every route must earn |
packages/tx-builder | Transaction construction for native routes |
packages/venue-* | One adapter per venue: Raydium, Orca, Meteora (DLMM, DAMM v2, DBC), byreal, Jupiter, OpenOcean, RFQ |
apps/router | Offline CLIs for discovery, verification, qualification and benchmarking |
Routing behaviour is flag-gated per environment, so quoting, the quote UI, native execution, split routing and path routing can each be enabled independently.
The onchain program keeps its original internal stockroom identifier. This is an implementation name and does not affect the Henar product identity.
npm run lint
npm run typecheck
npm test
npm run build
npm run contracts:build
Two generated data sets are rebuilt offline rather than fetched per request:
npm run router:discover:private # PreStocks and Tessera products, mints and pools
npm run sectors:build # SIC-based sector index from SEC EDGAR
npm run earnings:build # filed results powering the calendar
npm run calendar:warm -- 200 # widen the local research cache
The routing registries are built the same way, offline and against chain. Discovery proposes pools, verification is the only step that can mark one usable, and qualification decides which assets may carry a second hop:
npm run router:discover:raydium # also :orca :meteora :byreal :jupiter
npm run router:pools:build # assemble the registry from discovery output
npm run router:verify:pools # re-read pool and mint accounts, decode the real pair
npm run router:verify:mints # persist decimals, token program, extensions, slot
npm run router:qualify:intermediates # round-trip probe; only qualified assets carry a hop
npm run router:validate:build-sim # build and simulate representative native routes
npm run router:benchmark:matrix # Henar against the aggregators across sizes and sides
These require an RPC endpoint in .env.local. The committed registries are the output of these runs, so a reviewer can rebuild them rather than take them on trust.
Routing documentation: architecture, discovery, execution safety parity, benchmark matrix, open items. Session handoff notes: 16 September 2026.
The repository also contains release checks for protocol configuration, routes, transaction size, treasury accounts, and deployment planning. See validation evidence, mainnet setup, and security review.
The current review and test evidence supports a hackathon preview. A funded public launch still requires deployed-binary verification, capped rollout testing, operational monitoring, and an independent smart-contract audit.