VoidAccess
Ask one question and VoidAccess searches 12+ Tor search engines, GitHub and security feeds in parallel, then returns actors, wallets, leaked credentials and IOCs ready for STIX, MISP or Sigma. Open so
Verifícate una vez e inicia sesión en cualquier sitio aprobando desde tu teléfono qué datos compartes, para qué y por cuánto tiempo.
Translation pending
SecurityJavaScript · PythonGitHub @daniperdomoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Demuestra que eres una persona real y mayor de edad en cualquier sitio web sin entregar tu pasaporte, tu foto ni tu nombre. ZeroID verifica atributos, no personas. Lee tu pasaporte y tu rostro una sola vez, en memoria, y descarta las imágenes al instante. Te entrega una credencial firmada que vive en tu dispositivo. Cuando un sitio pregunta "¿es mayor de edad?", recibe un sí o un no, nunca tus datos.Read the full README ↗
Demuestra que eres una persona real y mayor de edad en cualquier sitio web sin entregar tu pasaporte, tu foto ni tu nombre.
ZeroID verifica atributos, no personas. Lee tu pasaporte y tu rostro una sola vez, en memoria, y descarta las imágenes al instante. Te entrega una credencial firmada que vive en tu dispositivo. Cuando un sitio pregunta "¿es mayor de edad?", recibe un sí o un no, nunca tus datos.
| Carpeta | Qué es | Stack |
|---|---|---|
frontend/ | Web: landing, registro, panel del usuario y el SDK (/sdk/zeroid.js) | Next.js 16, React 19 |
backend/ | Oráculo: verificación, credenciales y API para sitios | FastAPI, DeepFace, Gemini, PostgreSQL + pgvector |
app/ | App móvil: vincula el teléfono, aprueba inicios de sesión y muestra tus conexiones | Expo SDK 58, expo-router |
docs/ | Arquitectura y guía de despliegue |
| Parte | Dónde |
|---|---|
| Web | Vercel: platanus-hack-14.vercel.app |
| Demo de Expreso Caribe | Vercel, desde su propio repo (ver abajo) |
| Backend | DigitalOcean App Platform: https://octopus-app-h5zq3.ondigitalocean.app (docs de la API) |
| Base de datos | Neon (Postgres con pgvector) |
Para publicar cambios, sigue docs/despliegue.md.
cd backend
docker compose up -d db
Levanta Postgres 16 con pgvector en localhost:5432 (usuario, contraseña y base zeroid). Las tablas se crean solas cuando arranca el backend.
cd backend
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS / Linux
pip install -r requirements-dev.txt
cp .env.example .env
Completa backend/.env:
| Variable | Valor en local |
|---|---|
DATABASE_URL | postgresql://zeroid:zeroid@localhost:5432/zeroid |
DATABASE_URL_UNPOOLED | Vacía |
JWT_PRIVATE_KEY | Una llave RSA en PEM (ver abajo) |
HASH_PEPPER | Un secreto aleatorio (ver abajo); el backend no arranca con el valor de ejemplo |
GEMINI_API_KEY | Tu key de Gemini |
CORS_ORIGINS | http://localhost:3000 |
Para generar los dos secretos:
python -c "from cryptography.hazmat.primitives.asymmetric import rsa; from cryptography.hazmat.primitives import serialization as s; k=rsa.generate_private_key(public_exponent=65537,key_size=2048); print(k.private_bytes(s.Encoding.PEM,s.PrivateFormat.PKCS8,s.NoEncryption()).decode())"
python -c "import secrets; print(secrets.token_hex(32))"
Arranca el servidor desde backend/, porque ahí es donde lee el .env:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
--host 0.0.0.0 permite que el teléfono llegue al backend por la red local. En Windows, autoriza el puerto 8000 en el firewall.
cd frontend
npm install
cp .env.example .env.local
npm run dev
La web queda en http://localhost:3000.
La demo de una empresa que integra el SDK es un proyecto independiente, en su propio repo. Clónalo junto a este, en una carpeta expreso-caribe al mismo nivel que este repo.
Registra el cliente de la demo. El script escribe sus llaves en ../expreso-caribe/.env.local; si la clonaste en otro lugar, usa --env-file:
cd backend
python -m scripts.demo_client
Luego, en el repo de la demo:
npm install
npm run dev
La demo queda en http://localhost:3001. Por defecto carga el SDK desde http://localhost:3000 y canjea los inicios de sesión contra http://localhost:8000.
cd app
npm install --legacy-peer-deps
cp .env.example .env
npx expo start -c
En app/.env, pon EXPO_PUBLIC_API_URL con la IP de tu computador en la red (por ejemplo http://192.168.1.10:8000), no localhost. Escanea el QR con Expo Go.
cd backend
pytest -m "not integration" -q # sin base de datos
pytest -q # todas; requieren Postgres en DATABASE_URL
Para la web y la app no hay pruebas automáticas; antes de subir cambios comprueba que compilan:
cd frontend && npx next build
cd app && npx tsc --noEmit
Desde backend/:
| Comando | Qué hace |
|---|---|
python -m scripts.demo_client [--origin URL] [--env-file RUTA] | Registra Expreso Caribe como cliente del SDK |
python -m scripts.reset_db --yes | Borra usuarios, cuentas, conexiones y solicitudes. Conserva las tablas y los clientes del SDK. Usa la base de DATABASE_URL: revisa que no sea la de producción. |
docs/arquitectura.md: flujos y decisiones de diseño.docs/despliegue.md: cómo está publicado el proyecto y cómo subir cambios.