TECH STACK & INFRASTRUCTURE
| Component | Details |
| Framework | Vanilla JavaScript — no React, Vue, or Next.js. All hand-authored IIFEs. No bundler (no Webpack, Vite, Rollup). |
| CSS | Custom design system with CSS custom properties. No Tailwind, Bootstrap, or framework. |
| Hosting | Vercel — US-East (iad1, Ashburn VA). Static files + serverless API functions. |
| Solana Library | @solana/web3.js v1.98.0 from unpkg.com CDN (no SRI hash) |
| Wallet Adapter | Custom GOTM Labz Multi-Wallet Adapter v2.1 — NOT standard @solana/wallet-adapter. 2,091 lines. Unaudited. |
| Backend | Vercel serverless functions. Firebase backend (gotm-labz-4fe07). 10 API endpoints discovered. |
| RPC Provider | Helius (mainnet) — key leaked via unauthenticated endpoint |
| Auth System | Custom HMAC token (not standard JWT). Challenge-response with signMessage. Stored in localStorage. |
| Fonts | Google Fonts — Inter (400-800) |
| Analytics | None — no Google Analytics, Mixpanel, Segment, Hotjar, Clarity, or any tracking |
| Cache Strategy | Manual query string versioning (?v=6.6) — no build pipeline, no content hashing |
| External CDNs | unpkg.com (web3.js), esm.sh (Buffer polyfill), Google Fonts, plugin.jup.ag (Jupiter swap) |
| Explorers | Orb/Helius (default), Solscan, Solana Explorer, SolanaFM |
| DeFi Integration | Jupiter Aggregator (swap widget), GeckoTerminal (charts), Cloudflare Stream (video) |
| Domain Resolution | Bonfida SNS for .sol domains |
| Domain | orbisonsol.io → www.orbisonsol.io (307 redirect). Less than 2 weeks old at audit. |
| Legal | ToS governed by UAE/Dubai law. Entity: unnamed ("the Platform"). Copyright: "GOTM Labz Ltd." |
Notable: No build pipeline — all JS is hand-authored with manual cache-busting version strings. No analytics at all (unusual for any business). Custom auth token format instead of industry-standard JWT. The entire frontend is vanilla JS without a framework — while not inherently insecure, it means no ecosystem of security patches, no automated dependency updates, and no community-audited code paths. Everything is bespoke, which means every vulnerability is their own.
API ENDPOINTS DISCOVERED (10 total)
| Endpoint | Auth? | Purpose |
| /api/get-rpc-url | NO | Returns paid Helius RPC key to anyone |
| /api/sol-price | NO | SOL/USD price + 24h change |
| /api/marketplace | NO | Full collection database (44KB) |
| /api/mp-gate-public | NO | Maintenance/beta status + whitelist check |
| /api/stream | NO | Live stream/viewer data |
| /api/marketplace-votes | NO | Community voting data |
| /api/auth | Partial | Wallet challenge-response auth (POST only, validates input) |
| /api/admin-settings | Partial | Admin ops need auth, beta wallet submission does not |
| /api/marketplace-submit | Partial | Collection submissions (weak validation) |
| /api/csp-report | NO | CSP violation reports (POST) |
6 of 10 endpoints require zero authentication. Method enforcement is properly implemented (405 on wrong HTTP method). No hidden endpoints found at common paths (/api/users, /api/wallets, /api/config all return 404). Admin getSettings properly returns 401.
VERIFIED FINDINGS
Helius RPC API Key Publicly Exposed
/api/get-rpc-url returns a Helius mainnet RPC key (cc5a****-****-****-****-********33af) to any caller with no auth. Verified live April 9, 2026. Key partially redacted — we are not publishing the full key but anyone can call this endpoint right now and get it. This is a paid resource exposed to the public. Not a direct fund theft vector, but demonstrates basic security negligence from a team asking users to connect wallets. We have not exploited any of these findings. This is a passive audit of publicly accessible endpoints only.
VERIFIED: Custom Unaudited Wallet Adapter (Real Trust Issue)
GOTM Labz Multi-Wallet Adapter v2.1 — 2,091 lines of custom code, NOT the standard @solana/wallet-adapter used by most dApps. Shared across 130+ GOTM projects. Hardware wallet auth path sends real 0-lamport transactions on-chain (most auth flows only sign messages). No public audit. No drain patterns found in our review — but users are trusting unaudited custom code from an anonymous team with their wallet connections.
VERIFIED: UAE/Dubai Jurisdiction — No Named Entity
Terms of Service governed by UAE law, disputes in Dubai courts. No legal entity named anywhere — only "the Platform and its operators." Contact only through Discord. NFTs held in custodial escrow. Platform can modify terms unilaterally. International users have no practical legal recourse. This is the most significant trust issue for any user considering connecting a wallet.
NOTABLE: CSP Report-Only + No SRI Hashes
Content-Security-Policy is in report-only mode (monitoring, not enforcing). External scripts from unpkg.com and esm.sh loaded without subresource integrity hashes. For context: many Solana dApps have these same gaps — this is common across the ecosystem, not unique to Orbis. But for a project asking users to connect wallets to custom code from anonymous developers, every missing security layer matters more.
VERIFIED: Auth Challenge Nonce Reuse — Replay Risk
Three separate requestChallenge requests for the same wallet returned the identical nonce and timestamp every time. The server caches challenges instead of generating fresh single-use nonces. If a signed challenge is intercepted (network sniffing, compromised CDN, log exposure), it could be replayed to authenticate as the victim. Likely a serverless optimization for Vercel cold starts — but it weakens the challenge-response anti-replay protection that the well-structured challenge format was designed to provide.
VERIFIED: Weak Collection Submission Controls
The collection submission has several gaps: Twitter OAuth starts server-side (/api/oauth-twitter) but the final submission sends twitterVerified: true as a client-set boolean — if the server trusts this without re-validating, verification is bypassable. Submissions also accept verificationMethod: 'none' and wallets default to 'anonymous' if not connected. Legacy collections bypass address validation with a 'legacy:' prefix. Combined: the submission pipeline has multiple points where validation could be skipped.
NOTABLE: Admin Page Structure Visible
/admin returns "Admin Dashboard | GOTM Labz" HTML with login form (requires username + password + authenticator code). The admin functionality IS auth-protected — the login form is visible but actual admin actions require credentials. Sloppy (should redirect unauthenticated users) but not exploitable.