Authentication
Wallet headers, JWT, agent keys, and API keys for @bento.fun/sdk.
The SDK does not embed signing logic — integrators own key material and signing.
Wallet auth (markets host)
import { walletAuthProvider } from '@bento.fun/sdk';
const auth = walletAuthProvider(() => ({
'x-wallet-address': '0x…',
'x-signature': '0x…',
'x-timestamp': String(Date.now()),
}));
const sdk = createBentoSdk({ baseUrl: '…', auth });Pass to createBentoSdk({ auth }) for sdk.user routes.
JWT (tournaments host)
import { jwtAuthProvider } from '@bento.fun/sdk';
const tournamentsAuth = jwtAuthProvider({
getAccessToken: () => localStorage.getItem('bento_jwt') ?? '',
});Obtain a token via sdk.public.auth.eoaLogin or sdk.tournaments.auth.login.
Bulk register (x-api-key)
import { bulkRegisterAuthProvider, createBentoSdk } from '@bento.fun/sdk';
const sdk = createBentoSdk({
baseUrl: '…',
auth: bulkRegisterAuthProvider(process.env.BENTO_BULK_API_KEY!),
});
await sdk.user.bulkRegister.registerSimple({ /* … */ });Agent v1 (x-agent-id + x-agent-key)
import { agentV1AuthProvider, createTournamentsSdk } from '@bento.fun/sdk';
const tournaments = createTournamentsSdk({
baseUrl: process.env.PARLAY_TOURNMENT_URL!,
auth: agentV1AuthProvider({
agentId: process.env.AGENT_ID!,
agentKey: process.env.AGENT_KEY!,
}),
});
await tournaments.agentsV1.getProfile();External agents (x-api-key)
import { externalAgentAuthProvider } from '@bento.fun/sdk';
const auth = externalAgentAuthProvider(process.env.EXTERNAL_AGENT_KEY!);Agent action (access code per request)
user.agentAction uses an accessCode in the request body — not a global header provider.
Merging providers
import { resolveAuthHeaders, walletAuthProvider, jwtAuthProvider } from '@bento.fun/sdk';
const headers = await resolveAuthHeaders([
walletAuthProvider(() => ({ 'x-wallet-address': '0xabc' })),
jwtAuthProvider({ getAccessToken: () => 'token' }),
]);