Skip to main content
Read the Notte skill and follow its setup instructions when setting up Notte or building browser automation. This is the shared source for CLI setup, authentication, and the browser-to-code workflow.
Evervault Browser Tokens turn encrypted card data and credentials into format-preserving stand-ins for an agent to type. Evervault’s browser proxy replaces each token with the real value, but only on its way to the hostnames you allow. Use it as a Notte secret proxy.
Evervault’s browser proxy does not mask responses. If a listed site sends a real value back, for example an endpoint that echoes the card number, the real value reaches the browser, and from there the agent, screenshots, recordings and network logs. Only list hosts that do not return the real values. See Mask real values in responses.

Prerequisites

  • An Evervault app with Browser Tokens, and its app ID and API key.
  • The data to fill, encrypted with Evervault (for example with Card Collection).
  • The hostnames that receive the data: the payment provider or iframe host, not only the merchant’s site. They must be HTTPS hosts: Evervault’s browser proxy only handles CONNECT tunnels, so it rejects plain-HTTP requests even with a valid token.
  • For the example below: httpx in Python, or the built-in fetch in Node.

Map Evervault’s values to the secret entry

Each POST /browser-tokens call returns the stand-ins (data[].value) and a proxyConfiguration for Evervault’s browser proxy. Use it like this:
Keep hosts and permissions[].target identical. Notte sends every host in hosts to Evervault, but Evervault only swaps tokens for hosts in permissions. A host missing from permissions is tunneled through without interception and receives the stand-in.
The tokens and the proxy password stop working when the ttl expires. Evervault accepts a ttl of at most 900 seconds (15 minutes) and answers 400 to a higher value, so create tokens just before the agent fills them, or create a new batch and a new session when it runs out. If the password is wrong or has expired, Evervault refuses the connection (407) and requests to the listed hosts fail. Requests to every other host keep working. See If your secret proxy is unavailable. If you save the configuration in the console with the Evervault preset, save the server, username (your app ID), CA certificate and hosts, and send only the password with each session.

Share the exit IP

By default, Evervault sends requests to the listed hosts from its own datacenter IP addresses, so the listed hosts see a different IP address than the rest of the session’s browsing. To give every host the same IP, send Evervault’s outgoing traffic through Notte’s proxy gateway with proxySettings of type: "custom":
  1. Mint a gateway credential with a sticky_session and a country.
  2. Pass it in proxySettings when you create the tokens:
  1. Start the session with the same sticky_session and country on its notte entry.
Requests to the listed hosts and the rest of the browsing then exit from the same IP.
Evervault accepts egress credentials of up to 256 characters, and the gateway username grows with your sticky_session. Keep sticky_session to 32 characters or fewer: a 14-character value gives a username of about 150 characters.

Mask real values in responses

Evervault’s browser proxy does not replace real values in responses, and Notte does not change responses either. A listed site that sends a real value back, such as an endpoint that echoes the card number, returns the real value to the browser. Only list hosts that do not return the values you swap. See Mask real values in responses.

Example

This example fills a card number and CVV on api.stripe.com, with Evervault’s egress going through the session’s exit:
Give the agent the stand-ins from data[].value. Evervault swaps them for the real values only on requests to api.stripe.com.

Learn more