# SDK versions

Staying current with SDK versions helps developers take advantage of the latest capabilities and enhancements offered.

<table data-full-width="true"><thead><tr><th width="308.76171875">URL</th><th width="100.625">Version</th><th>Integrity</th><th>Changes</th></tr></thead><tbody><tr><td><a href="https://cdn.firstoken.co/captures/js/2.3/sdk.js">https://cdn.firstoken.co/captures/js/2.3/sdk.js</a></td><td>v2.3</td><td>sha256-D0P+mQ7N6E0tbReEGYNTjoGqRmWUX87oCLd8PNvs5vg=</td><td>Content encryption, JWT authentication, enhanced security. <strong>100% Backward Compatible</strong></td></tr><tr><td><a href="https://cdn.firstoken.co/captures/js/2.2/sdk.js">https://cdn.firstoken.co/captures/js/2.2/sdk.js</a></td><td>v2.2</td><td>sha256-IzmJZo/gWd+To2rEV/ZC9+fXZZgHfw5E0jZECyq9ipY=</td><td>Added support for Google Fonts ('Lato', 'Montserrat', 'Open Sans', 'Oswald', 'Poppins', 'Roboto', 'Raleway', 'Slabo 13px', 'Slabo 27px', 'PT Sans', 'Inter') in the font-family CSS</td></tr><tr><td><a href="https://cdn.firstoken.co/captures/js/2.1/sdk.js">https://cdn.firstoken.co/captures/js/2.1/sdk.js</a></td><td>v2.1</td><td>sha256-FbadlNL2dab5uMHBUpFv+jEKsUSg3Cmi0dYvVWQIuZs=</td><td>Added support for tags parameter in the initialization function.</td></tr><tr><td><a href="https://cdn.firstoken.co/captures/js/2.0/sdk.js">https://cdn.firstoken.co/captures/js/2.0/sdk.js</a></td><td>v2.0</td><td>sha256-qtSTst/JgM5bN+4ZILzXN/DEgAhg2jDYgH5pF9YqeNY=</td><td>Added separate date validation events.</td></tr><tr><td><a href="https://cdn.firstoken.co/captures/js/1.0/sdk.js">https://cdn.firstoken.co/captures/js/1.0/sdk.js</a></td><td>v1.0</td><td>sha256-5VzwvLiVo4k8snm84TZShTmTWzXBbCM8NyNMXdkx8fw=</td><td>Original version</td></tr></tbody></table>

### Implementation Recommendations

#### For New Implementations

**Use SDK 2.3** with these options:

#### **Standard Security (Quick Start)**

```html
<script src="https://cdn.firstoken.co/captures/js/2.3/sdk.js"></script>
<script>
const FT = window.FTCaptures.init("your-route-id", "production", callback);
</script>
```

#### **Enhanced Security (Recommended)**

```html
<script src="https://cdn.firstoken.co/captures/js/2.3/sdk.js"></script>
<script>
const FT = window.FTCaptures.init("your-route-id", "production", callback, tags, jwtToken);
</script>
```

### Integrity Verification

Always use integrity hashes in production:

```html
<script 
    src="https://cdn.firstoken.co/captures/js/2.3/sdk.js"
    integrity="sha256-D0P+mQ7N6E0tbReEGYNTjoGqRmWUX87oCLd8PNvs5vg="
    crossorigin="anonymous">
</script>
```

### Version Migration Guides

#### Migrating from 2.2 to 2.3

1. **Update CDN URL**

   ```html
   <!-- Before -->
   <script src="https://cdn.firstoken.co/captures/js/2.2/sdk.js"></script>

   <!-- After -->
   <script src="https://cdn.firstoken.co/captures/js/2.3/sdk.js"></script>
   ```
2. **Test functionality** - All existing features continue to work
3. **Optional: Implement JWT** for enhanced security
4. **Optional:** If you need to encrypt the payload you sent to us, please contact the support team to configure this feature in the inbound route you are using.

### Resources

* [Full Example Guide](/api-docs/guides/implementing-captures-sdk-js/full-example-of-usage.md) - Detailed implementation help
* [Migration & Compatibility](/api-docs/guides/implementing-captures-sdk-js/migration-and-compatibility.md) - Upgrade assistance
* [JWT Authentication Guide](/api-docs/guides/implementing-captures-sdk-js/jwt-authentication-for-firstoken-sdk.md) - Security enhancement


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://firstoken.gitbook.io/api-docs/guides/implementing-captures-sdk-js/sdk-versions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
