BentoSDK

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' }),
]);

On this page