Skip to content
Logo

Eve

Eve is an open-source framework for building agents. @stripe/link-integrations-eve is an Eve extension that lets your agent use a customer’s Link wallet to request secure payment credentials through spend requests.

The extension exposes the tools from the TypeScript SDK to your agent and adds two skills that teach it how to use them. Use it instead of calling the SDK yourself when you build with Eve.

Install

The extension requires Node.js 24 or newer and is built against Eve 0.79.0. Eve checks compatibility at build time. The Node.js requirement is higher than the one for the TypeScript SDK.

pnpm add @stripe/link-integrations-eve

Authenticate

You need a Link access token or an OAuth provider that issues one. See OAuth setup. Configure exactly one of accessToken or auth.

Static token

Use a static token for a single-wallet agent. Every call uses that token’s wallet and permissions, regardless of who is in the session. A 401 response fails without a refresh.

// agent/extensions/link.ts
import link from '@stripe/link-integrations-eve'
 
export default link({accessToken: process.env.LINK_ACCESS_TOKEN!})

Interactive OAuth

Use interactive OAuth when each user connects their own wallet. Build linkAuth with Eve’s defineInteractiveAuthorization, implementing getToken, startAuthorization, and completeAuthorization. Your application owns PKCE and state, token exchange, per-user grants, refresh, and revocation. Link requires an exactly registered redirect URI.

// agent/extensions/link.ts
import link from '@stripe/link-integrations-eve'
import {linkAuth} from '../lib/link-auth'
 
export default link({auth: linkAuth})

Tools

When you mount the extension as link, tool names have the prefix link__.

AreaTools
Profile and walletretrieve_user_info, list_payment_methods, list_shipping_addresses
Spend requestslist_spend_requests, create_spend_request, retrieve_spend_request, update_spend_request, request_spend_approval, cancel_spend_request
Financial datalist_transactions, list_sources, list_balances
Insightslist_available_insight_types, list_insights
Reportingcreate_report

The extension includes the create-payment-credential and financial-insights skills.

Approval and credentials

create_spend_request requires Eve user approval on every call by default. This is separate from the customer approval that Link requires for a purchase.

If you request include: ['card'], payment credentials can appear in tool output and stored events. Restrict access to session transcripts accordingly.

To change the approval behavior, override the tool. This example removes the Eve approval prompt:

// agent/extensions/link/tools/create_spend_request.ts
import {create_spend_request} from '@stripe/link-integrations-eve/tools'
import {defineTool} from 'eve/tools'
import {never} from 'eve/tools/approval'
 
export default defineTool({...create_spend_request, approval: never()})

Use once() instead of never() to prompt once per session. To remove a tool, create its file in the same directory and default-export disableTool() from eve/tools.

Example

Eve integration source includes a terminal OAuth example.