Skip to content

Secure Storage

SecureStorage provides encrypted local secure storage for sensitive data such as authentication tokens and keys. Data is encrypted before being stored on the device. Accessed via Telegram.WebApp.SecureStorage. Bot API 8.0+

Limits

ItemLimit
Maximum number of entries10
Maximum key length128 characters
Maximum value length2048 characters
Key charactersA-Z, a-z, 0-9, _, -

Methods

setItem

javascript
Telegram.WebApp.SecureStorage.setItem(key, value, callback)

Securely stores a key-value pair.

ParameterTypeRequiredDescription
keyStringYesKey name, 1-128 characters
valueStringYesValue, 0-2048 characters
callbackFunctionNoCallback with (error, success) parameters
javascript
Telegram.WebApp.SecureStorage.setItem('auth_token', 'eyJhbGciOi...', (error, success) => {
  if (error) {
    console.error('Secure storage failed:', error);
  } else {
    console.log('Token stored securely');
  }
});

getItem

javascript
Telegram.WebApp.SecureStorage.getItem(key, callback)

Reads the value of a specified key from secure storage.

ParameterTypeRequiredDescription
keyStringYesKey name
callbackFunctionYesCallback with (error, value) parameters
javascript
Telegram.WebApp.SecureStorage.getItem('auth_token', (error, value) => {
  if (error) {
    console.error('Read failed:', error);
  } else if (value) {
    // Use token
    apiClient.setToken(value);
  }
});

removeItem

javascript
Telegram.WebApp.SecureStorage.removeItem(key, callback)

Removes a specified key from secure storage.

ParameterTypeRequiredDescription
keyStringYesKey name
callbackFunctionNoCallback with (error, success) parameters

clear

javascript
Telegram.WebApp.SecureStorage.clear(callback)

Clears all data in secure storage.

ParameterTypeRequiredDescription
callbackFunctionNoCallback with (error, success) parameters

Storage Comparison

FeatureCloudStorageDeviceStorageSecureStorage
LocationCloudLocalLocal (encrypted)
Data syncCross-deviceLocal onlyLocal only
Capacity1024 keys × 4KB5 MB10 keys × 2KB
SecurityStandardStandardEncrypted
Use casesUser preferencesCache dataSensitive data
Min versionBot API 8.0+Bot API 8.0+

Usage Example

javascript
const secureStorage = Telegram.WebApp.SecureStorage;

// Securely store login credentials
function saveCredentials(token, refreshToken) {
  secureStorage.setItem('access_token', token, (err) => {
    if (!err) {
      secureStorage.setItem('refresh_token', refreshToken);
    }
  });
}

// Load login credentials
function loadCredentials(callback) {
  secureStorage.getItem('access_token', (err, token) => {
    if (err || !token) {
      callback(null);
      return;
    }
    secureStorage.getItem('refresh_token', (err, refreshToken) => {
      callback({ token, refreshToken });
    });
  });
}

// Clear credentials on logout
function logout() {
  secureStorage.clear((err) => {
    if (!err) {
      console.log('Credentials cleared');
      redirectToLogin();
    }
  });
}