Peer-to-peer payment protocol · Est. March 21, 2026
MONEY
WITHOUT
MASTERS
Quantum-Resistant · Worldwide · Instant · Open
Every node has the same chance of winning — from day one to year thirty-seven. No mining rigs. No staking. No advantage for early entrants. Built on post-quantum cryptography that the rest of the industry is not ready for.
View on GitHub
Network Status
◎ PRE-LAUNCH
Total Supply
125,000,000 TMPL
Reward Interval
10 seconds
Transaction Fee
0.1% of amount
Cryptography
Dilithium3
Running in 60 seconds
1
Install dependencies
pip3 install dilithium-py cryptography pycryptodome mnemonic
2
Download TIMPAL
curl -O https://raw.githubusercontent.com/EvokiTimpal/timpal/main/timpal.py
3
Run your node
python3 timpal.py

Works on Mac · Linux · Windows  ·  Python 3.8+

How it works
🔐
Quantum-Resistant from Day One
Bitcoin and Ethereum wallets use ECDSA — cryptography that quantum computers will break. TIMPAL uses Dilithium3, the NIST 2024 post-quantum standard, as its only cryptographic primitive. Every wallet, every signature, every transaction is resistant to quantum attack from the moment it is created. There is no fallback. There is no migration path needed.
Cryptographic Finality
A block is final when more than 2/3 of all mature identities have signed it with Dilithium3 attestations (~30 seconds). A finalized block cannot be reversed under any circumstances short of breaking Dilithium3.
🎲
Equal Chance for Every Node
Every 10 seconds, one node wins 1.0575 TMPL. A node that started today has the exact same statistical chance as one that has been running since genesis — by design, enforced at the protocol level. No mining hardware. No staking. No capital requirement. ~10 competitors are selected per slot via a deterministic lottery regardless of network size. The winner is decided by cryptographic proof, not by who owns the most.
🪪
On-Chain Identity Registration
Every new node registers its identity on-chain via a signed REGISTER message embedded in a block. Only identities registered for at least 200 slots (~33 minutes) can produce valid blocks. Enforced at consensus — no shortcut, no bypass.
🖥️
One Node Per Device
The protocol enforces one node per physical device at the OS level. Running ten terminals gives you zero advantage.
📒
Distributed Ledger
Every node holds the complete chain. Each block is cryptographically linked to the previous one — a single, tamper-evident history anchored by integer arithmetic throughout.
🌐
Worldwide Network
Peer discovery via UDP broadcast locally and TCP bootstrap globally. Nodes find each other automatically. The network keeps producing blocks even if bootstrap goes offline.
Two-Era Model
Era 1 · Now → Year ~37.5
Distribution
Nodes earn through the VRF lottery: 1.0575 TMPL every 10 seconds. Every transaction costs 0.1% of the send amount (min 0.0001 TMPL, max 0.01 TMPL), paid to the slot winner. 125 million TMPL distributed over ~37.5 years. No pre-mine. No insider allocation. Zero.
Era 2 · Year ~37.5 onwards
Sustaining
Lottery rewards stop — supply is fixed forever at 125 million TMPL. Transactions still carry a 0.1% fee paid to the slot winner. The network sustains itself indefinitely through fees alone.
PropertyValue
Total Supply125,000,000 TMPL
Smallest Unit0.00000001 TMPL (1 unit = 10⁻⁸ TMPL)
Reward Per Round1.0575 TMPL
Round IntervalEvery 10 seconds
Distribution Period~37.5 years
Eligible Nodes Per Slot~10 (fixed target, regardless of network size)
Identity Maturation Period200 slots (~33 minutes)
Confirmation Depth3 slots (~30 seconds)
Checkpoint IntervalEvery 1,000 slots (~2.8 hours)
Transaction Fee0.1% of amount (min 0.0001, max 0.01 TMPL) → slot winner
Pre-mineNone
Insider AllocationNone
Explorer
Total Minted
Remaining Supply
VRF Rounds
Nodes
Transactions
Chain Height
Tip Slot
TMPL Minted0%
Recent Blocks
LIVE
Connecting to network...
Recent Transactions
LIVE
No transactions yet
Node Statistics
Loading...
Documentation
Installation

TIMPAL runs on Mac, Linux, and Windows. You need Python 3.8 or newer.

# Step 1 — Install all dependencies pip3 install dilithium-py cryptography pycryptodome mnemonic # Step 2 — Download the protocol curl -O https://raw.githubusercontent.com/EvokiTimpal/timpal/main/timpal.py # Step 3 — Run your node python3 timpal.py

That's everything. No configuration files. No accounts. No KYC.

Running a Node

When you start TIMPAL for the first time, it generates a 12-word recovery phrase you must write down, creates a quantum-resistant wallet, and connects to the worldwide network automatically.

⚠️ Keep your Mac awake while the node is running. Use caffeinate -i python3 timpal.py on Mac to prevent sleep.

Your node broadcasts a signed identity registration to the network and waits for it to be included in a block. After 200 slots (~33 minutes) your identity is mature and your node begins competing in the VRF lottery automatically.

Only one node can run per device. If you try to open a second terminal, the protocol blocks it immediately.
Commands

While your node is running, type these at the > prompt:

CommandWhat it does
balanceShow your TMPL balance and full wallet address
chainChain height, tip hash, orphan count, and recent confirmed blocks
peersList online nodes currently connected to you
sendSend TMPL interactively
historyYour last rewards and transactions
networkYour node and network stats
quitShut down your node cleanly

You can also run commands from a second terminal without stopping your node:

# Check balance from a new terminal python3 timpal.py balance # Send TMPL from a new terminal (amount in TMPL) python3 timpal.py send <address> <amount>
Your Wallet

Your wallet is stored in one file:

~/.timpal_wallet.json
⚠️ Back this file up immediately. It contains your encrypted private key. Also store your 12-word recovery phrase on paper in a safe place — it is the only way to recover your wallet if you lose the file. If you lose both, your TMPL is gone forever.
How it Works

TIMPAL is a chain-anchored distributed ledger. Every node holds a complete copy. There is no proof-of-work. Each reward is a block cryptographically linked to the previous one. All balances, amounts, and fees are stored as integer units (1 TMPL = 100,000,000 units) to eliminate floating-point divergence across hardware.

Identity Registration

Every new node broadcasts a signed REGISTER message to its peers. This message contains the node's device ID, public key, and a Dilithium3 signature proving ownership. Peers collect pending registrations and embed up to 10 of them in each block they produce.

When a block is accepted by the network, all registrations it contains are recorded with the block's slot number as the identity's first_seen_slot. This value is stored in the ledger's identity table and survives every checkpoint — it can never be lost or pruned.

An identity must be registered on-chain for at least 200 slots (~33 minutes) before it can produce a valid block. This is enforced at the consensus layer — every node independently rejects blocks from identities that are too young.
# Identity lifecycle Node starts → broadcasts REGISTER message to peers Peer includes REGISTER in next block Block accepted → identities[device_id] = block.slot After 200 slots → identity is mature → eligible for lottery # Consensus rule in every node if block.slot >= 1000: # post-genesis phase if winner not in identities: reject if block.slot - identities[winner] < 200: reject
VRF Lottery

Every 10 seconds, one node wins 1.0575 TMPL via a compete-based scheme. ~10 nodes are selected per slot regardless of total network size.

# Competitor selection — deterministic, unpredictable until prev block arrives score(device_id) = sha256(f"{device_id}:{prev_block_hash}:{slot}") competitors = 10 identities with lowest score # Each selected node signs the slot challenge challenge = sha256(f"challenge:{prev_block_hash}:{slot}") compete_sig = Dilithium3.sign(private_key, challenge) compete_proof = sha256(compete_sig) # Winner = competitor with lowest proof hash winner = min(verified_competitors, key=lambda c: c["proof"])

Every node independently verifies each COMPETE message and applies the identical tiebreak rule. All honest nodes agree on the same winner without any coordination.

Finality

After accepting a new block, every mature node produces a Dilithium3 attestation over f"attest:{block_hash}:{slot}" and broadcasts it to peers. A block is cryptographically final when more than 2/3 of all mature identities have attested it.

A finalized block cannot be reorged under any circumstances short of breaking Dilithium3. This is a stronger guarantee than probabilistic finality — it requires an attacker to control more than 1/3 of all registered mature identities.

Each attestation is bound to the public key registered on-chain for that identity. An attacker cannot forge an attestation for another node without its private key.

Ledger

Blocks achieve cryptographic finality at ~30 seconds via the attestation mechanism. The longer valid chain wins on fork. Out-of-order blocks are held in an orphan pool and attached once their parent arrives. Every 1,000 slots (~2.8 hours), a checkpoint prunes the raw history while preserving all balances and the full identity table. Before accepting a peer checkpoint, every node independently recomputes balances from its own chain history — a checkpoint with corrupted balances is rejected outright.

Network
MethodHowRange
LocalUDP broadcast on port 7778Same WiFi network
GlobalTCP bootstrap at bootstrap.timpal.org:7777Worldwide
Compete messagesDirect P2P gossip between peersWorldwide — no bootstrap required
AttestationsDirect P2P gossip between peersWorldwide — no bootstrap required
Identity GossipREGISTER message direct gossip to peersWorldwide — no bootstrap required
Tokenomics
PropertyValue
Total Supply125,000,000 TMPL
Smallest Unit0.00000001 TMPL
Reward Per Round1.0575 TMPL
Round IntervalEvery 10 seconds
Distribution Period~37.5 years
Eligible Nodes Per Slot~10
Identity Maturation200 slots (~33 minutes)
Confirmation Depth3 slots (~30 seconds)
Checkpoint IntervalEvery 1,000 slots (~2.8 hours)
Transaction Fee0.1% of amount (min 0.0001 TMPL, max 0.01 TMPL) → slot winner
Pre-mineNone
Insider AllocationNone
Two Eras

Era 1 — Distribution (Years 0 to ~37.5): Every transaction carries a fee of 0.1% of the send amount (minimum 0.0001 TMPL, maximum 0.01 TMPL), paid to the slot winner. Nodes also earn through the VRF lottery: 1.0575 TMPL every 10 seconds. 125 million TMPL distributed over ~37.5 years. No pre-mine.

Era 2 — Sustaining (Year ~37.5 onwards): Lottery rewards stop. Supply is fixed at 125 million forever. Transactions still carry a 0.1% fee paid to the slot winner. Network self-sustaining indefinitely through fees alone.

The transition is automatic. No upgrade required. No vote.