---
updatedAt: 2026-03-11T21:18:23.000Z
agentTools:
  projectIndex: https://docs.wristband.dev/llms.txt
---

# Utilities

The Wristband team is always looking for more ways to provide value to developers.

Beyond SDKs and example apps, Wristband will periodically publish handy tools to [Wristband's Github repositories](https://github.com/orgs/wristband-dev/repositories) in an effort make multi-tenant authentication, authorization, and user management even easier.

# Online Tools

<HTMLBlock>{`
<div class="button-container">

      <a href="https://jwtvalidator.dev" target="_blank" class="button" style="text-decoration: none;">
        <div class="button-content">
            <img src="https://assets.wristband.dev/docs/ReadMe+docs/icons/misc/jwt-validator-icon.png" alt="backend server icon" height="32" width="28" class="icon" style="margin: 4px auto 8px 0;">
            <h3 style="margin: 4px 0 8px;">JWT Validator</h3>
            <p class="button-desc">Decode headers and claims, inspect timestamps, and verify signatures for signed JWTs.</p>
            <div class="try-it-now">
                <span>Visit Site</span>
                <span class="arrow">🔗</span>
            </div>
        </div>
    </a>

    <a href="https://securepassword.dev" target="_blank" class="button" style="text-decoration: none;">
        <div class="button-content">
            <img src="https://assets.wristband.dev/docs/ReadMe+docs/icons/misc/secure-password-icon.png" alt="secure password icon" height="32" width="28" class="icon" style="margin: 4px auto 8px 0;">
            <h3 style="margin: 4px 0 8px;">Secure Password Generator</h3>
            <p class="button-desc">Generate strong, random passwords and secrets for accounts, apps, and APIs.</p>
            <div class="try-it-now">
                <span>Visit Site</span>
                <span class="arrow">🔗</span>
            </div>
        </div>
    </a>
    
</div>

<style>
    .button-container {
        display: grid;
        gap: 16px;
        margin-top: 32px;
    }

    .button-container {
        grid-template-columns: 1fr;
    }
  
    .button-container a,
    .button-container a:visited {
        text-decoration: none;
        color: inherit;
    }

    @media (min-width: 1200px) {
        .button-container {
            grid-template-columns: repeat(2, 1fr);
        }
    }

    .button {
        text-decoration: none;
        border: 1px solid #b0b0b0;
        border-radius: 8px;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background-color 0.3s ease, box-shadow 0.3s ease;
    }

    .button:hover {
        border: 1px solid #ee60c6;
        box-shadow:0px 8px 16px rgba(0, 0, 0, 0.35), 0px 4px 8px rgba(238, 96, 198, 0.3);
        cursor: pointer !important;
        filter: brightness(90%) !important;
    }

    .button-content {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        padding: 8px 8px 8px 16px;
        height: 100%;
        width: 100%;
    }

    .emoji {
        font-size: 1.4em;
    }
  
    .logo {
        width: 48px;
        height: auto;
        margin-bottom: 8px;
    }
  
    .try-it-now {
      color: #ee60c6;
      display: flex;
      align-items: center;
      font-weight: bold;
      font-size: 1em;
      margin-top: auto;
      margin-right: 16px;
      align-self: flex-end;
    }

    .arrow {
        margin-left: 8px;
        font-size: 1.2em;
    }

    h3 {
        font-size: 1.2em;
        margin: 4px 0;
        font-weight: bold;
    }

    .button-desc {
        font-size: 0.9em;
    }
</style>
`}</HTMLBlock>

# Scripts

<HTMLBlock>{`
<div class="button-container">
  
    <a href="https://github.com/wristband-dev/user-export" target="_blank" class="button" style="text-decoration: none;">
        <div class="button-content">
            <img src="https://assets.wristband.dev/docs/ReadMe+docs/icons/misc/user-export-icon.png" alt="backend server icon" height="32" width="28" class="icon" style="margin: 4px auto 8px 0;">
            <h3 style="margin: 4px 0 8px;">User Export</h3>
            <p class="button-desc">A Python script that outputs tenant user information from your Wristband application into a CSV file.</p>
            <div class="try-it-now">
                <span>See GitHub</span>
                <span class="arrow">➡️</span>
            </div>
        </div>
    </a>
  
    <a href="https://github.com/wristband-dev/user-import" target="_blank" class="button" style="text-decoration: none;">
        <div class="button-content">
            <img src="https://assets.wristband.dev/docs/ReadMe+docs/icons/misc/user-import-icon.png" alt="backend server icon" height="32" width="28" class="icon" style="margin: 4px auto 8px 0;">
            <h3 style="margin: 4px 0 8px;">User Import</h3>
            <p class="button-desc">A Python script that processes a CSV file with user information and creates users in a specified tenant of your Wristband app.</p>
            <div class="try-it-now">
                <span>See GitHub</span>
                <span class="arrow">➡️</span>
            </div>
        </div>
    </a>
    
</div>

<style>
    .button-container {
        display: grid;
        gap: 16px;
        margin-top: 32px;
    }

    .button-container {
        grid-template-columns: 1fr;
    }
  
    .button-container a,
    .button-container a:visited {
        text-decoration: none;
        color: inherit;
    }

    @media (min-width: 1200px) {
        .button-container {
            grid-template-columns: repeat(2, 1fr);
        }
    }

    .button {
        text-decoration: none;
        border: 1px solid #b0b0b0;
        border-radius: 8px;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background-color 0.3s ease, box-shadow 0.3s ease;
    }

    .button:hover {
        border: 1px solid #ee60c6;
        box-shadow:0px 8px 16px rgba(0, 0, 0, 0.35), 0px 4px 8px rgba(238, 96, 198, 0.3);
        cursor: pointer !important;
        filter: brightness(90%) !important;
    }

    .button-content {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        padding: 8px 8px 8px 16px;
        height: 100%;
        width: 100%;
    }

    .emoji {
        font-size: 1.4em;
    }
  
    .logo {
        width: 48px;
        height: auto;
        margin-bottom: 8px;
    }
  
    .try-it-now {
      color: #ee60c6;
      display: flex;
      align-items: center;
      font-weight: bold;
      font-size: 1em;
      margin-top: auto;
      margin-right: 16px;
      align-self: flex-end;
    }

    .arrow {
        margin-left: 8px;
        font-size: 1.2em;
    }

    h3 {
        font-size: 1.2em;
        margin: 4px 0;
        font-weight: bold;
    }

    .button-desc {
        font-size: 0.9em;
    }
</style>
`}</HTMLBlock>

<br />

<HTMLBlock>{`
<style>
.UpdatedAt {
  display: none;
}
</style>
`}</HTMLBlock>