A computer-implemented method for generating a public encryption key on a blockchain network and enabling access to a corresponding private encryption key after a specified time period, the method comprising: constructing a digital time-lock contract between an agent and a client on the blockchain network, the agent having an agent address on the blockchain network and an associated agent signature, and the client having a client address on the blockchain network and an associated client signature, the digital time-lock contract specifying that: (i) the agent holds the private encryption key corresponding to the public encryption key on the blockchain network and then releases the encryption private key to the blockchain network within a specified time window; (ii) the agent provides a first cryptographic asset for holding and then releasing the encryption private key to the blockchain network within the specified time window, the first cryptographic asset being transferrable to the agent address on the blockchain network when the encryption private key is released to the blockchain network within the specified time window; (iii) the client provides a second cryptographic asset to the agent for holding and then releasing the encryption private key to the blockchain network within the specified time window, the second cryptographic asset being transferrable to the agent address on the blockchain network when the encryption private key is released to the blockchain network within the specified time window; (iv) if the encryption private key is released prior to the time window opening then the second cryptographic asset is transferrable to the client address on the blockchain network; (v) if the encryption private key is not released prior to the time window closing then the second cryptographic asset is transferrable to the client address on the blockchain network. (i) the agent holds the private encryption key corresponding to the public encryption key on the blockchain network and then releases the encryption private key to the blockchain network within a specified time window; (ii) the agent provides a first cryptographic asset for holding and then releasing the encryption private key to the blockchain network within the specified time window, the first cryptographic asset being transferrable to the agent address on the blockchain network when the encryption private key is released to the blockchain network within the specified time window; (iii) the client provides a second cryptographic asset to the agent for holding and then releasing the encryption private key to the blockchain network within the specified time window, the second cryptographic asset being transferrable to the agent address on the blockchain network when the encryption private key is released to the blockchain network within the specified time window; (iv) if the encryption private key is released prior to the time window opening then the second cryptographic asset is transferrable to the client address on the blockchain network; (v) if the encryption private key is not released prior to the time window closing then the second cryptographic asset is transferrable to the client address on the blockchain network.