Validate init data from the MAX messenger
  • TypeScript 100%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Denis Smirnov f1d4609d47 update readme
2025-07-11 15:37:50 +03:00
src Initial commit 2025-07-11 15:26:19 +03:00
tests Add parse tests 2025-07-11 15:35:58 +03:00
.gitignore Initial commit 2025-07-11 15:26:19 +03:00
biome.json Initial commit 2025-07-11 15:26:19 +03:00
bun.lock Initial commit 2025-07-11 15:26:19 +03:00
package.json update readme 2025-07-11 15:37:50 +03:00
README.md update readme 2025-07-11 15:37:50 +03:00
tsconfig.json Initial commit 2025-07-11 15:26:19 +03:00

Validation:

import { validateInitData } from "max-validate-init-data";

const initData = "auth_date%3D1733485316394%26query_id%3D158b120b-7aa3-4a0f-a198-52ace06d0658%26user%3D%257B%2522language_code%2522%253A%2522ru%2522%252C%2522first_name%2522%253A%2522%25D0%2592%25D0%25B0%25D1%2581%25D1%258F%2522%252C%2522last_name%2522%253A%2522%2522%252C%2522photo_url%2522%253Anull%252C%2522username%2522%253Anull%252C%2522id%2522%253A400%257D%26hash%3Df982406d90b118d8e90e26b33c5cec0cadd3fc30354f2955c75ff8e3d14d130d";
const botToken = "2Uk3Z_8zAlwhprgOcK3r1B1fDk8uhi2MDv47EvXkcu8";

const { data, error } = validateInitData({
    initData,
    botToken,
})

if (error) {
    console.error(error);
    return;
}

console.log(data); // this will get you the entire parsed and validated initData object

Parse:

import { parseInitData } from "max-validate-init-data";

const initData = "auth_date%3D1733485316394%26query_id%3D158b120b-7aa3-4a0f-a198-52ace06d0658%26user%3D%257B%2522language_code%2522%253A%2522ru%2522%252C%2522first_name%2522%253A%2522%25D0%2592%25D0%25B0%25D1%2581%25D1%258F%2522%252C%2522last_name%2522%253A%2522%2522%252C%2522photo_url%2522%253Anull%252C%2522username%2522%253Anull%252C%2522id%2522%253A400%257D%26hash%3Df982406d90b118d8e90e26b33c5cec0cadd3fc30354f2955c75ff8e3d14d130d";

const { data, error } = parseInitData(initData);

if (error) {
    console.error(error);
    return;
}

console.log(data); // init data is here once again