---
title: "totp | Grafana k6 documentation"
description: "TOTP library for generating and verifying time-based one-time passwords."
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# totp

> Note
> 
> The source code for this library can be found in the [grafana/k6-jslib-totp](https://github.com/grafana/k6-jslib-totp) GitHub repository.

The `totp` module provides TOTP (Time-based One-Time Password) generation and verification as defined in [RFC 6238](https://datatracker.ietf.org/doc/html/rfc6238).

Expand table

| Class/Method                                                                         | Description                |
|--------------------------------------------------------------------------------------|----------------------------|
| [TOTP(secret, \[digits\])](/docs/k6/latest/javascript-api/jslib/totp/totp/)          | Create a new TOTP instance |
| [TOTP.gen(\[timeStep\], \[bias\])](/docs/k6/latest/javascript-api/jslib/totp/gen/)   | Generate a TOTP code       |
| [TOTP.verify(code, \[timeStep\])](/docs/k6/latest/javascript-api/jslib/totp/verify/) | Verify a TOTP code         |

## Example

JavaScript ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```javascript
import { TOTP } from 'https://jslib.k6.io/totp/1.0.0/index.js';

export default async function () {
  const totp = new TOTP('GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ', 6);
  const code = await totp.gen();
  console.log(`TOTP code: ${code}`);

  const isValid = await totp.verify(code);
  console.log(`Valid: ${isValid}`);
}
```

## With k6 Secrets

JavaScript ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```javascript
import secrets from 'k6/secrets';
import { TOTP } from 'https://jslib.k6.io/totp/1.0.0/index.js';

export default async function () {
  const secret = await secrets.get('totp_secret');
  const totp = new TOTP(secret, 6);
  const code = await totp.gen();
  console.log(`TOTP code: ${code}`);
}
```
