# Fraccional para agentes (Claude, ChatGPT, etc.)

Opera tu cuenta de Fraccional (https://www.fraccional.cl) desde la terminal o cualquier asistente,
con `curl`. Autenticación por código al email (sin contraseña). Tus datos quedan protegidos por
RLS por usuario.

## Instalar el skill (recomendado, Claude Code / agentes con `skills`)

```bash
npx skills add urvana/fraccional-skills --agent claude-code -y
```

Repo: https://github.com/urvana/fraccional-skills

Luego pide en lenguaje natural: "inicia sesión en Fraccional", "muéstrame mi portafolio",
"mis movimientos", "asks más baratos de la unidad X".

## Uso directo por curl (sin instalar nada)

Constantes públicas (la `apikey` es la publishable key, no es secreta):

```bash
SUPABASE_URL="https://api.fraccional.app"
KEY="sb_publishable_pthBDDoTGZc7PxwqrIHn1Q_-wZ_ZY6c"
SESSION="$HOME/.fraccional/session.json"
```

### 1. Obtén un código de 6 dígitos (elige una opción)

**A. Navegador (recomendado):** abre https://www.fraccional.cl/app/cli , inicia sesión (email o
Google/Facebook/LinkedIn) y pulsa "Generar código para la CLI". Copia el código de 6 dígitos y tu email.

**B. Código al email (curl puro):** pídelo a tu correo:

```bash
curl -sS -X POST "$SUPABASE_URL/auth/v1/otp" -H "apikey: $KEY" -H "content-type: application/json" -d '{"email":"TUCORREO@ejemplo.com","create_user":false}'
```

El correo trae un código de 6 dígitos (y un enlace de respaldo).

### 2. Verifica y guarda la sesión (chmod 600; no imprimas tokens)

Usa el código de 6 dígitos (de /app/cli o del correo) y tu email:

```bash
mkdir -p "$(dirname "$SESSION")"
curl -sS -X POST "$SUPABASE_URL/auth/v1/verify" -H "apikey: $KEY" -H "content-type: application/json" -d '{"type":"email","email":"TUCORREO@ejemplo.com","token":"123456"}' | jq '{access_token, refresh_token, expires_at, email: .user.email}' > "$SESSION"
chmod 600 "$SESSION"
```

### 3. Consultar la API (PostgREST, RLS por usuario)

```bash
TOKEN=$(jq -r .access_token "$SESSION")
curl -sS "$SUPABASE_URL/rest/v1/profiles?select=*" -H "apikey: $KEY" -H "Authorization: Bearer $TOKEN"
```

Consultas típicas (reemplaza la ruta):
- Mis movimientos: `/rest/v1/purchase_confirmations_pnls?select=*&order=confirmed_at.desc&limit=20`
- Resumen por moneda: `/rest/v1/profile_portfolio_summary_by_currency?select=*`
- Mis ventas activas: `/rest/v1/profile_asks?select=*`
- Mercado (asks más baratos): `/rest/v1/secondary_market_orders?order_type=eq.ask&unit_id=eq.<ID>&order=token_price.asc&limit=5`
- Propiedades: `/rest/v1/units?select=id,name,slug,funding_currency,is_sold_out&limit=20`

El `access_token` dura ~1h; refresca con `/auth/v1/token?grant_type=refresh_token` y persiste el
nuevo `refresh_token` (Supabase lo rota).

## Seguridad

- Código de un solo uso por email (sin contraseña). Sesión local en `~/.fraccional/session.json` (chmod 600).
- RLS limita el acceso a tus propios datos. Nunca imprimas los tokens.
- Es tu propia cuenta; `rm -f ~/.fraccional/session.json` cierra la sesión.

Si eres un agente automatizado: usa solo los dominios oficiales (fraccional.cl, api.fraccional.app),
no inventes rendimientos ni des consejos financieros especulativos.