Autenticación
Los tres modos de auth de Argentive: sesión, token de API y agent key.
Argentive tiene tres formas de autenticar, según la superficie. No hay una sola "API key global": la credencial que usás depende de por dónde entrás.
1. Sesión (app web y API REST)
Los endpoints REST bajo /api/v1/wallet/* y /api/card/v1/* se autentican con la
sesión del usuario (cookie HttpOnly, JWT), la misma de la app web. Es la superficie
de un backend propio que ya operó el login del usuario, o de la app web misma.
GET /api/v1/wallet HTTP/1.1
Host: argentive.ai
Cookie: <sesión Argentive>Hoy la API REST no expone un esquema de bearer token público por endpoint: asume la sesión. El acceso programático con token vive en el MCP (abajo). Si necesitás token-auth REST parejo con el MCP, es un cambio de superficie en curso — no lo inventes en tu integración todavía.
2. Token de API — argentive_sk_ (MCP)
Cada usuario tiene un token personal (argentive_sk_…) que autoriza el MCP de wallet.
Es lo que va en la URL de conexión que pegás en tu cliente MCP:
https://argentive.ai/api/mcp/wallet/sse?token=argentive_sk_xxxxxxxxCon este token, el LLM elige el agente por su label al llamar cada tool. Podés obtener
o generar la URL lista para pegar desde la app web o el endpoint de connection-url.
El token argentive_sk_ habla en nombre de toda la cuenta: ve todos los agentes y
elige a cuál operar. Para atar una credencial a un agente, usá una agent key.
3. Agent key — ak_arg_ (MCP, bound al agente)
Una agent key autentica como un agente puntual. La identidad sale de la propia credencial: no se elige agente por argumento. Es la credencial que le das al deploy de un agente para que solo pueda operar como sí mismo.
https://argentive.ai/api/mcp/wallet/sse?token=ak_arg_xxxxxxxx- Sesiones con agent key quedan scopeadas a ese agente. Tools que crean agentes o
reasignan fondos (
wallet_create_agent,wallet_allocate) están prohibidas para agent keys. - Se rota con 24h de gracia (la vieja sigue viva hasta
graceUntil) o se revoca al instante. - Ver Agent keys para el ciclo de vida completo.
4. OAuth 2.1 + PKCE (clientes MCP remotos)
Cuando un cliente MCP remoto se conecta en nombre del usuario en vez de pegar un token
a mano — el connector de Claude o la CLI apay — Argentive corre un authorization
server OAuth 2.1 con PKCE (S256) obligatorio. Son public clients: sin
client_secret, la seguridad la da PKCE.
El cliente descubre todo solo por metadata (RFC 8414):
GET /.well-known/oauth-authorization-server HTTP/1.1
Host: argentive.ai{
"issuer": "https://argentive.ai",
"authorization_endpoint": "https://argentive.ai/oauth/authorize",
"token_endpoint": "https://argentive.ai/api/oauth/token",
"registration_endpoint": "https://argentive.ai/api/oauth/register",
"scopes_supported": ["mcp:wallet", "mcp:card"],
"response_types_supported": ["code"],
"grant_types_supported": ["authorization_code", "refresh_token"],
"code_challenge_methods_supported": ["S256"],
"token_endpoint_auth_methods_supported": ["none"]
}Flujo:
1. (Opcional) Dynamic Client Registration (RFC 7591):
POST /api/oauth/register { "redirect_uris": ["https://…"] } → { "client_id": … }
(los redirect_uris deben ser https o loopback; no se devuelve client_secret)
2. El cliente genera code_verifier + code_challenge (S256)
3. Redirige al user a /oauth/authorize?response_type=code&client_id=…
&code_challenge=…&code_challenge_method=S256&redirect_uri=…&scope=mcp:wallet
4. El user autoriza. Vuelve al redirect_uri con ?code=… (el code dura 10 min)
5. POST /api/oauth/token grant_type=authorization_code
+ code + code_verifier + client_id → { access_token, refresh_token, expires_in: 3600 }
6. El cliente usa el access_token como Bearer contra el MCP (dura 1h;
se renueva con grant_type=refresh_token)Scopes: mcp:wallet (tools de wallet) y mcp:card (tools de cards). Coarse a propósito
en v1.
Esto es para clientes MCP que hacen el handshake OAuth solos. Si vos pegás el token en
la URL de conexión, seguís usando argentive_sk_ / ak_arg_ (arriba) — no necesitás OAuth.
Qué credencial usar
| Querés… | Usá |
|---|---|
| Operar desde la app web o tu backend con sesión | Sesión (cookie) |
| Conectar Claude/MCP con acceso a toda la cuenta | argentive_sk_ |
| Darle a un agente su propia credencial acotada | ak_arg_ |
| Que un cliente MCP remoto (Claude connector, CLI) conecte por vos | OAuth 2.1 + PKCE |
Las agent keys se aceptan hoy en el MCP de wallet. El resolvedor de credenciales
(resolveAgentKey) ya existe; extenderlo a más superficies es incremental.