Solana Clock Sysvar Viewer

Solana Sysvar Addresses

Sysvar Program ID:

Sysvar1111111111111111111111111111111111

Clock Sysvar Address:

SysvarC1ock11111111111111111111111111111111

Domain Name:

clock.programwatch.sol
Solana Clock Sysvar
Current time information from the Solana blockchain
Devnet
Local Time Comparison

Local Time

3/26/2025, 2:25:57 AM

Solana Time (devnet)

Loading...

Copy the Code

Use this code snippet to fetch and parse Solana clock data in your own projects:

Solana Clock Code Snippet
// Solana Sysvar Program ID
const SYSVAR_ID = 'Sysvar1111111111111111111111111111111111';
const SYSVAR_CLOCK_PUBKEY = new PublicKey('SysvarC1ock11111111111111111111111111111111');

const connection = new Connection('https://api.devnet.solana.com', 'confirmed');
const clockAccount = await connection.getAccountInfo(SYSVAR_CLOCK_PUBKEY);
const data = clockAccount.data;

// Helper function to read little-endian 64-bit integers
const readUInt64LE = (buffer, offset) => {
    const low = buffer.readUInt32LE(offset);
    const high = buffer.readUInt32LE(offset + 4);
    return BigInt(low) + (BigInt(high) << 32n);
};

const readInt64LE = (buffer, offset) => {
    const value = readUInt64LE(buffer, offset);
    return value > 0x7FFFFFFFFFFFFFFFn ? value - 0x10000000000000000n : value;
};

// Parse the fields
const slot = Number(readUInt64LE(data, 0)); // u64 at offset 0
const epochStartTimestamp = Number(readInt64LE(data, 8)); // i64 at offset 8
const epoch = Number(readUInt64LE(data, 16)); // u64 at offset 16
const leaderScheduleEpoch = Number(readUInt64LE(data, 24)); // u64 at offset 24
const unixTimestamp = Number(readInt64LE(data, 32)); // i64 at offset 32

// Convert Unix timestamp to human-readable date
const date = new Date(unixTimestamp * 1000);

// Display the results
console.log('Solana Clock Sysvar Data:');
console.log(`- Slot: ${slot}`);
console.log(`- Epoch: ${epoch}`);
console.log(`- Leader Schedule Epoch: ${leaderScheduleEpoch}`);
console.log(`- Epoch Start Timestamp: ${epochStartTimestamp} (${new Date(epochStartTimestamp * 1000).toUTCString()})`);
console.log(`- Unix Timestamp: ${unixTimestamp} (${date.toUTCString()})`);