A quantum-resistant wallet is a cryptocurrency wallet designed to be secure against attacks from both classical and future quantum computers. The primary threat comes from Shor's algorithm, which can efficiently break the elliptic curve cryptography (ECC) and RSA that secure today's blockchain signatures and key derivation. Architecting such a system requires moving beyond a simple keypair swap to a holistic strategy of cryptographic agility—the ability to seamlessly update cryptographic primitives—and robust key management to handle the transition period, known as the harvest-now-decrypt-later threat.
How to Architect a Quantum-Resistant Wallet System
How to Architect a Quantum-Resistant Wallet System
A technical guide to designing a cryptocurrency wallet that can withstand attacks from quantum computers, focusing on cryptographic agility and key lifecycle management.
The core architectural shift involves adopting post-quantum cryptography (PQC) algorithms. The U.S. National Institute of Standards and Technology (NIST) has standardized several, with CRYSTALS-Dilithium for digital signatures and CRYSTALS-Kyber for key encapsulation being leading candidates. A wallet must support these new algorithms while maintaining backward compatibility. A practical design uses a dual-signature scheme: for every transaction, the wallet generates both a traditional ECDSA signature (e.g., secp256k1) and a PQC signature. This ensures the transaction is valid on the current blockchain while future-proofing it, at the cost of increased transaction size.
Key management is equally critical. Wallets must implement a secure, quantum-resistant method for deriving and storing keys. Hash-based signatures, like SPHINCS+, are considered quantum-safe but generate large keys and signatures. For the master seed, using a Key Derivation Function (KDF) with a large output, such as Argon2id with a 512-bit salt, is essential. The architecture should also plan for key rotation protocols, allowing users to migrate funds from a pre-quantum address to a new, fully PQC-secured address once the underlying blockchain supports native PQC transactions, without relying on the security of the old ECDSA key.
For developers, implementing this requires careful library selection and abstraction. Libraries like liboqs (Open Quantum Safe) provide open-source implementations of NIST PQC candidates. The wallet's signing module should be abstracted so the cryptographic backend can be swapped. Example architecture in pseudocode:
code// Abstract signing interface interface Signer { Signature sign(Message msg); } // Concrete implementations class ECDSASigner implements Signer { ... } class DilithiumSigner implements Signer { ... } // Wallet engine uses both class QuantumResistantWallet { Signer classicalSigner = new ECDSASigner(); Signer pqSigner = new DilithiumSigner(); Transaction signTx(Transaction tx) { tx.sigClassical = classicalSigner.sign(tx.hash()); tx.sigPQC = pqSigner.sign(tx.hash()); return tx; } }
Finally, the architecture must address the transition challenge. Blockchains like Ethereum and Bitcoin will not upgrade to PQC overnight. Wallets need a strategy for the interim period, which may involve using PQC-secured multi-signature schemes or smart contract wallets that can enforce PQC validation rules. The ultimate goal is a system where the wallet can detect the network state and automatically use the most secure, compatible signing method, providing user security without requiring deep technical knowledge of the ongoing cryptographic migration.
Prerequisites and Core Concepts
Building a wallet that can withstand quantum computing threats requires a fundamental shift from classical cryptography. This guide covers the core concepts and prerequisites for designing such a system.
The primary threat from quantum computers to existing blockchain wallets is Shor's algorithm. This algorithm can efficiently break the Elliptic Curve Digital Signature Algorithm (ECDSA) and RSA cryptography that secures wallets today. ECDSA, used by Bitcoin and Ethereum, relies on the difficulty of the elliptic curve discrete logarithm problem. Shor's algorithm can solve this problem on a sufficiently powerful quantum computer, allowing an attacker to derive a private key from its corresponding public key, which is always exposed on-chain. This is a catastrophic, post-quantum failure mode for single-key and multi-signature wallets alike.
To architect a quantum-resistant system, you must understand post-quantum cryptography (PQC). PQC refers to cryptographic algorithms designed to be secure against both classical and quantum computer attacks. These are not yet quantum algorithms themselves but are based on mathematical problems believed to be hard for quantum computers to solve. Major categories include lattice-based cryptography (e.g., CRYSTALS-Dilithium), hash-based signatures (e.g., SPHINCS+), code-based cryptography, and multivariate cryptography. The National Institute of Standards and Technology (NIST) is standardizing PQC algorithms, with CRYSTALS-Dilithium selected as the primary standard for digital signatures.
A critical architectural decision is the signature scheme. You must choose a PQC algorithm that balances security, signature size, and performance. For example, a Dilithium2 signature is about 2.5 KB, compared to a 64-byte ECDSA signature. This has massive implications for blockchain transaction size and gas costs. Furthermore, most PQC algorithms are stateful, meaning they require careful management of the private key state to prevent reuse, which adds complexity to key generation and backup procedures compared to stateless ECDSA.
Your architecture must also plan for cryptographic agility. The PQC landscape is evolving, and future cryptanalysis may weaken today's chosen algorithm. A well-designed system should allow for the seamless migration to new algorithms without requiring users to move funds to a new address. This often involves designing a forward-compatible signature format or using a layered approach where a PQC signature wraps a traditional one during a transition period. The goal is to avoid the cryptographic lock-in that plagues current blockchain systems.
Finally, consider the key lifecycle and storage. PQC private keys can be larger and more complex. Secure key generation, possibly requiring a trusted execution environment (TEE) or hardware security module (HSM) with PQC support, is essential. Backup and recovery mechanisms, like Shamir's Secret Sharing (SSS), must be adapted to handle these new key formats. The user experience for backing up a 2.5 KB private key seed phrase is fundamentally different and must be addressed in the system design from the outset.
Core Cryptographic Components
Building a wallet that can withstand future quantum attacks requires replacing vulnerable cryptographic primitives with quantum-resistant alternatives. This section details the essential components and protocols.
Hash-Based Cryptography
Hash functions like SHA-256 and SHA-3 are considered quantum-resistant, as Grover's algorithm only provides a quadratic speedup. They form the bedrock of several PQC schemes.
- XMSS & LMS: Stateful hash-based signature standards (NIST SP 800-208) ideal for specific use cases like firmware signing, but require secure state management.
- Hash chains and Merkle trees: Used in constructions like the Merkle Signature Scheme, enabling one-time signatures that can be aggregated. These are often used as a fallback or in hybrid schemes to guarantee a minimum security floor.
Hybrid Cryptography Schemes
A pragmatic transition strategy that combines classical and post-quantum algorithms.
- Hybrid Signatures: A single signature is composed of both an ECDSA/EdDSA signature and a PQC signature (e.g., Dilithium). The signature is only valid if both verify.
- Hybrid KEMs: Similarly combines keys from ECDH and Kyber to derive a session key. This approach maintains compatibility with existing blockchain networks while adding a layer of quantum resistance, ensuring security even if one algorithm is broken.
Key Management & Storage
Post-quantum keys are often larger, impacting storage and performance.
- Key Sizes: Dilithium2 public keys are ~1.3KB, private keys ~2.5KB. Kyber768 public keys are ~1.2KB. Plan for increased storage requirements.
- Hardware Security Modules (HSMs): Ensure your HSM vendor supports PQC algorithms for secure key generation and signing operations.
- Performance: PQC operations can be slower. Benchmark signing/verification times (e.g., Dilithium2: ~50k signs/sec, ~150k verifies/sec on modern CPU) to inform UX decisions.
Protocol Integration Points
Identify where cryptography is used in wallet protocols and upgrade each point.
- Transaction Signing: Replace the signature scheme in the wallet's signing module.
- Peer-to-Peer Communication: Use a hybrid KEM in the wire protocol (e.g., Noise_PQ).
- State & Storage: Authenticate wallet database or encrypted backups with PQC signatures.
- Smart Contract Interaction: If the wallet interacts with quantum-aware contracts, ensure signature formats are compatible. A systematic audit of all cryptographic calls is essential.
How to Architect a Quantum-Resistant Wallet System
A practical guide to designing wallet infrastructure that can withstand attacks from future quantum computers, focusing on key generation, transaction signing, and migration strategies.
A quantum-resistant wallet system must protect against two primary threats from quantum computers: Shor's algorithm, which can break today's elliptic curve cryptography (ECC) and RSA used for digital signatures, and Grover's algorithm, which can accelerate brute-force attacks on symmetric keys and hash functions. The core architectural challenge is to replace vulnerable cryptographic primitives with post-quantum cryptography (PQC) algorithms while maintaining usability, performance, and compatibility with existing blockchain networks. This requires a multi-layered approach spanning key generation, state management, and transaction lifecycle.
The foundation is a PQC key pair. Instead of ECC-based keys (e.g., secp256k1), the system uses algorithms standardized by NIST, such as CRYSTALS-Dilithium for digital signatures or Falcon. The private key must be generated and stored with the same rigor as classical keys, using secure entropy sources. However, simply using a PQC signature for a blockchain like Ethereum is insufficient, as the network's protocol and validating nodes would not recognize it. Therefore, the architecture must implement a signature abstraction layer or utilize a smart contract wallet as a wrapper to enable PQC-signed transactions on a non-PQC chain.
For practical deployment, a hybrid signature scheme is often the most viable initial architecture. A transaction is signed with both a traditional ECDSA signature and a PQC signature. This can be implemented via a smart contract that requires both signatures for validity, or through a multi-signature scheme where one key is classical and one is post-quantum. This provides cryptographic agility, ensuring the wallet functions today while being prepared for a future hard fork or upgrade where the network adopts PQC natively. Projects like the Quantum Resistant Ledger (QRL) have implemented such systems from inception.
Key management must also be quantum-secure. Symmetric encryption for encrypting the keystore (e.g., using AES-256) is currently considered safe against quantum attacks, as Grover's algorithm only provides a quadratic speedup, making 256-bit keys sufficiently secure. However, key derivation functions (KDFs) like scrypt or Argon2 remain essential for protecting against brute-force attacks. The architecture should avoid schemes that rely on the long-term secrecy of public keys, as quantum computers could derive the private key from any public key exposed on-chain.
Finally, the system must include a migration and recovery protocol. If a quantum computer becomes viable, users need a secure path to move assets from vulnerable legacy addresses to new PQC-secured ones. This could involve time-locked transactions, social recovery schemes using PQC, or governance-initiated network upgrades. Architecting for this eventuality is as crucial as the initial cryptographic design. The goal is to create a system that is not only resistant tomorrow but also operational and interoperable within today's blockchain ecosystem.
How to Architect a Quantum-Resistant Wallet System
This guide explains the architectural principles for building a cryptocurrency wallet system designed to withstand attacks from future quantum computers, focusing on post-quantum cryptography (PQC) and secure key management.
A quantum-resistant wallet must replace current cryptographic primitives like ECDSA and Schnorr signatures, which are vulnerable to Shor's algorithm, with post-quantum cryptography (PQC). The primary focus is on key encapsulation mechanisms (KEMs) for encryption and digital signature algorithms for signing transactions. The U.S. National Institute of Standards and Technology (NIST) has selected algorithms for standardization, including CRYSTALS-Kyber for KEM and CRYSTALS-Dilithium, Falcon, and SPHINCS+ for signatures. Your architecture must be modular to allow for algorithm agility, enabling you to swap in newer, more secure PQC algorithms as the field evolves without a complete system overhaul.
Key generation is the foundational security layer. For a quantum-resistant system, you must generate keys using a cryptographically secure random number generator (CSPRNG) and the chosen PQC algorithm's key pair generation function. For example, generating a key pair with Dilithium involves sampling random polynomials. The private key must be encrypted at rest using a Post-Quantum Secure Key Encryption Key (PQ-KEK), such as one derived from a user's strong passphrase via a PQC-secure key derivation function (KDF). Never store an unencrypted private key in memory longer than necessary for the signing operation. Hardware Security Modules (HSMs) with PQC support are ideal for this environment.
Secure storage architecture must enforce key separation and isolation. The most sensitive component, the long-term signing key, should reside in a secure enclave (like Intel SGX or Apple's Secure Enclave) or a dedicated hardware wallet chip. For cloud or server-based systems, use Hardware Security Modules (HSMs) that are FIPS 140-3 validated and offer PQC algorithm support. Implement a multi-party computation (MPC) or threshold signature scheme (TSS) using PQC algorithms to distribute key shards, eliminating the single point of failure of a monolithic private key. This also enables institutional-grade security policies requiring multiple approvals.
The system must protect against harvest-now, decrypt-later attacks, where an adversary records encrypted data or public transactions today to decrypt later with a quantum computer. Mitigate this by using PQC hybrid schemes. For key exchange, combine X25519 with Kyber (X25519+Kyber768) to maintain classical security while adding a quantum-resistant layer. For signatures, use a hybrid approach like ECDSA + Dilithium, where a transaction is signed by both algorithms. This ensures backward compatibility with existing blockchain networks while future-proofing the signatures.
Finally, architect for key lifecycle management. This includes secure procedures for key generation, rotation, backup (using PQC-encrypted shards stored geographically apart), and destruction. Your design should include audit logging of all key operations using cryptographically secure, append-only logs. Regularly test your implementation against known side-channel attacks, as many PQC algorithms have different operational profiles than classical ones and may be susceptible to timing or power analysis. The architecture is not complete without a plan for migrating users from classical to post-quantum keys, which may involve broadcasting special migration transactions.
Quantum-Safe Transaction Signing
A practical guide to designing a cryptocurrency wallet system that can withstand attacks from future quantum computers.
The cryptographic foundation of today's blockchains, primarily Elliptic Curve Cryptography (ECC) for signing and RSA for key exchange, is vulnerable to Shor's algorithm running on a sufficiently powerful quantum computer. A quantum-resistant wallet must replace these primitives with Post-Quantum Cryptography (PQC) algorithms. The transition involves more than swapping libraries; it requires a new architecture for key generation, transaction serialization, and network consensus. This guide outlines the core components for building such a system, focusing on the CRYSTALS-Dilithium signature scheme, a finalist in the NIST PQC standardization process.
The first architectural decision is key management. Unlike ECC's compact key pairs, PQC algorithms like Dilithium produce larger keys and signatures. A Dilithium3 public key is ~1,312 bytes, and a signature is ~2,420 bytes, compared to ~33 bytes and ~64 bytes for secp256k1. Your wallet's storage and state management must accommodate this. Furthermore, you must design a key derivation path (e.g., following BIP-44) that is algorithm-agnostic, allowing for future PQC migrations. The seed phrase (mnemonic) remains secure, as it's protected by a hash function, but the derived key material must feed into a PQC key generation function.
Transaction construction is the next critical layer. You must define a new transaction format that encapsulates a PQC signature. For Ethereum, this could be a new EIP-2718 transaction type (e.g., Type 4). The signature must be verified by network validators, requiring a precompiled contract or native client support. Here's a conceptual Solidity interface for a verifier:
solidityinterface DilithiumVerifier { function verify( bytes32 messageHash, bytes memory publicKey, bytes memory signature ) external view returns (bool); }
The messageHash is the Keccak-256 hash of the transaction data, ensuring the quantum-safe signature protects the same intent.
A major challenge is backward compatibility and the transition period. You cannot force the entire network to upgrade simultaneously. A dual-signature approach is a practical interim solution: transactions are signed with both the legacy ECDSA key and the new PQC key. This requires a network upgrade where validators accept transactions with this new dual-signature type. Your wallet must manage two active key pairs and orchestrate the signing of a single transaction payload with both algorithms. This ensures uninterrupted operability while the network consensus transitions to requiring only the PQC signature.
Finally, the system's security audit surface expands. You must vet the PQC library implementation for side-channel attacks and ensure robust randomness for key generation. Integrate with existing secure enclaves (like Intel SGX or Apple's Secure Element) if possible. The architecture should also plan for algorithm agility—the chosen PQC algorithm may need replacement if cryptanalysis reveals weaknesses. Design abstract SignatureManager and KeyManager interfaces in your codebase to facilitate such future swaps without overhauling the entire wallet core, ensuring long-term resilience in the post-quantum era.
Comparison of Custody Architectures for Quantum-Resistant Wallets
Evaluating different wallet custody models based on their quantum resistance, security trade-offs, and operational complexity.
| Feature / Metric | Non-Custodial (Single-Sig) | Multi-Party Computation (MPC) | Multi-Signature (Multi-Sig) |
|---|---|---|---|
Quantum-Resistant Key Generation | |||
Post-Quantum Signature Support | Falcon-512, Dilithium | Falcon-512, Dilithium | ECDSA/Schnorr only |
Private Key Material Exposure | Single point of failure | Never fully assembled | Distributed across signers |
Signing Latency | < 100 ms | 200-500 ms | 1-5 seconds |
Threshold Flexibility | |||
On-Chain Footprint | 1 signature | 1 signature | N signatures |
Recovery Complexity | High (seed phrase only) | Configurable (social/backup) | High (requires m-of-n signers) |
Typical Use Case | Individual power users | Institutional custody, DAOs | Treasury management, corporate wallets |
How to Architect a Quantum-Resistant Wallet System
A practical guide to designing a wallet system that integrates post-quantum cryptography (PQC) with existing blockchain security models.
A quantum-resistant wallet system must protect against two primary threats: a cryptographically relevant quantum computer (CRQC) breaking Elliptic Curve Cryptography (ECC) to forge signatures and steal funds, and one breaking RSA or similar algorithms to decrypt sensitive data. The core architectural challenge is transitioning from current standards like ECDSA and EdDSA to Post-Quantum Cryptography (PQC) algorithms, such as those standardized by NIST (e.g., CRYSTALS-Dilithium, SPHINCS+, Falcon). This migration cannot be a simple swap; it requires a hybrid strategy that maintains backward compatibility while future-proofing assets.
The most critical design pattern is hybrid signatures. A wallet should generate both a traditional ECDSA signature and a PQC signature for every transaction. This dual-signature approach ensures the transaction is valid under the current consensus rules (which only verify ECDSA) while also embedding a quantum-secure proof. You can implement this by concatenating signatures or using a custom struct in your transaction data. For example, a Solidity verifier for a hybrid signature might check the ECDSA signature first, then, in a separate function, validate the attached Dilithium signature, storing its public key for future verification once the network upgrades.
Key management must also evolve. A quantum-resistant architecture should not rely on a single PQC key derived from the same seed phrase. Instead, implement a key derivation function (KDF) that generates separate key pairs: one for ECDSA (using BIP-32/39/44) and one for your chosen PQC algorithm. Store these keys securely, understanding that PQC public keys and signatures are significantly larger (e.g., Dilithium2 public key is 1,312 bytes). This impacts gas costs on EVM chains and storage requirements, necessitating optimizations like storing hashes of PQC data on-chain with full data in IPFS or a decentralized storage layer.
For migration, a phased rollout is essential. Phase 1 involves wallet software generating and storing hybrid keys offline. Phase 2 sees the wallet broadcasting hybrid transactions, which are ignored by nodes but provably exist on-chain. The final phase is a coordinated network upgrade where consensus clients begin requiring and verifying the PQC signature. To manage this, architects should design with upgradeability in mind, using proxy contracts for smart contract wallets or versioned transaction formats. Monitoring the NIST PQC standardization timeline and the development of projects like the Open Quantum Safe library is crucial for implementing production-ready algorithms.
Ultimately, architecting this system is about risk management. A well-designed hybrid wallet protects assets today while providing a clear, executable path to full quantum resistance. Developers should start by integrating libraries like liboqs, testing hybrid signing in devnets, and participating in community efforts to standardize PQC formats for blockchains like Ethereum, Bitcoin, and Cosmos.
Tools and Libraries
Building a wallet resilient to quantum attacks requires integrating specialized cryptographic libraries, secure key management patterns, and post-quantum signature schemes.
Transaction Construction & Gas Estimation
Adapt wallet transaction builders for larger PQC signatures. A Dilithium2 signature is ~2.5KB vs. 64 bytes for ECDSA. This increases calldata costs significantly. Wallets must:
- Estimate Gas: Accurately calculate gas for 2-4KB of calldata on L1s.
- Batch Transactions: Use signature aggregation or rollups to amortize cost.
- User UX: Clearly explain higher fees for PQC-secured transactions.
Test on networks like Ethereum Holesky using PQC precompiles.
Further Resources and Documentation
Primary specifications, libraries, and design references for building a quantum-resistant wallet system. These resources focus on post-quantum cryptography standards, hybrid wallet architectures, and production-ready tooling.
Hybrid Signature Wallet Architectures
Most blockchains do not yet support post-quantum signatures at the protocol level. Hybrid wallet architectures allow gradual migration without breaking consensus.
Common design patterns:
- Dual-signature transactions: ECDSA or Ed25519 signature plus Dilithium signature
- Commitment-based PQ proofs: Store PQ public key hashes on-chain, verify off-chain
- Account abstraction layers: Validate PQ signatures inside smart contract wallets
Tradeoffs to consider:
- Signature size inflation and calldata costs
- Verification gas costs on EVM-compatible chains
- UX impact for hardware and mobile wallets
Hybrid designs are already feasible using smart contract wallets on Ethereum, Starknet, and other account abstraction environments, even before native PQ opcode support exists.
Hash-Based Signatures and SPHINCS+
SPHINCS+ is a stateless, hash-based signature scheme standardized by NIST. It relies only on cryptographic hash functions, making it resilient to future cryptanalytic surprises.
Why SPHINCS+ matters for wallets:
- No reliance on lattice assumptions
- Long-term security suitable for cold storage and vault wallets
- Compatible with environments that already trust SHA-256 or SHA-3
Limitations to design around:
- Very large signature sizes compared to Dilithium
- Slower signing and verification
Recommended use cases:
- High-value cold wallets
- Long-term escrow or inheritance wallets
- Backup signing paths for catastrophic cryptographic failures
SPHINCS+ is rarely suitable for high-frequency transaction wallets but plays a key role in defense-in-depth designs.
Wallet Firmware and Hardware Constraints
Quantum-resistant wallets must account for real hardware limits, especially in secure elements and microcontrollers used by hardware wallets.
Key constraints:
- Limited RAM and flash for large PQ keys and signatures
- Slower cryptographic operations on low-power chips
- Secure key storage for multiple key types
Practical recommendations:
- Benchmark Dilithium signing time on target hardware early
- Avoid SPHINCS+ on constrained devices unless strictly necessary
- Use external secure memory or companion chips for PQ keys
Hardware-first testing often determines whether a quantum-resistant design is viable in production. Many PQ failures happen not in theory, but in firmware implementation.
Frequently Asked Questions
Common technical questions and implementation challenges for developers building post-quantum cryptography (PQC) into blockchain wallet systems.
A quantum-resistant wallet is a blockchain wallet designed to be secure against attacks from quantum computers. The core difference lies in its underlying cryptography.
Standard wallets (like most Ethereum or Bitcoin wallets today) rely on Elliptic Curve Cryptography (ECC) for digital signatures (ECDSA) and public key derivation. A sufficiently powerful quantum computer could use Shor's algorithm to derive a private key from its corresponding public key, breaking the security.
Quantum-resistant wallets replace these vulnerable algorithms with Post-Quantum Cryptography (PQC). This involves:
- Using PQC signature schemes (e.g., CRYSTALS-Dilithium, SPHINCS+) instead of ECDSA.
- Implementing PQC key encapsulation mechanisms (KEMs) like CRYSTALS-Kyber for encrypted transactions.
- Often, these are hybrid systems that combine classical and PQC algorithms during a transition period to maintain compatibility and defense-in-depth.
Conclusion and Next Steps
This guide has outlined the core components of a quantum-resistant wallet system. The next step is to integrate these concepts into a practical development plan.
Building a quantum-resistant wallet is a multi-layered engineering challenge. You must combine a post-quantum cryptography (PQC) signature scheme like CRYSTALS-Dilithium or Falcon with a robust key management architecture. This involves implementing the new signing logic, integrating it with your existing transaction construction pipeline, and ensuring the wallet can correctly parse and verify these novel signatures from the blockchain. The NIST Post-Quantum Cryptography Standardization project is the definitive resource for vetted algorithms.
Your immediate development priorities should be: 1) Prototyping with a PQC library such as liboqs or a language-specific implementation, 2) Designing a hybrid signature system that supports both ECDSA and PQC during the transition period, and 3) Rigorously testing signature size and gas cost implications on your target networks, as PQC signatures are significantly larger. For Ethereum, this means calculating the impact on calldata and exploring solutions like signature aggregation or BLS schemes.
Long-term, quantum resistance extends beyond signatures. You must plan for quantum-safe key derivation and storage. This could involve integrating PQC into your HD wallet derivation path or researching hash-based signatures like XMSS for long-term key generation. Furthermore, stay informed about network-level upgrades, such as Ethereum's potential integration of PQC through future EIPs, which will dictate final implementation standards.
To continue your research, engage with the following resources: the Open Quantum Safe project for open-source libraries, academic papers on hybrid signature models, and community forums for blockchain clients like Geth and Nethermind. The transition to a quantum-secure blockchain ecosystem is a proactive journey, and building resilient wallets today is a critical contribution to the security of decentralized finance tomorrow.