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-eveAuthenticate
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__.
| Area | Tools |
|---|---|
| Profile and wallet | retrieve_user_info, list_payment_methods, list_shipping_addresses |
| Spend requests | list_spend_requests, create_spend_request, retrieve_spend_request, update_spend_request, request_spend_approval, cancel_spend_request |
| Financial data | list_transactions, list_sources, list_balances |
| Insights | list_available_insight_types, list_insights |
| Reporting | create_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.