I first submitted this idea as an example usage for BIP65.
The feedback was that this might be large enough to be a BIP on its own.
So, I'm submitting here for review and feedback.

In short, this informational BIP describes two Bitcoin script constructs that utilize the CHECKLOCKTIMEVERIFY opcode to create a smart contract that allows a specific offer, with flexible expiration time, to be presented and either accepted (optionally into escrow), or withdrawn/rejected.

The BIP draft can be found at:

  https://github.com/mruddy/bips/blob/bip-xx-offer-accept-escrow/bip-offer-accept-escrow.mediawiki

An small example usage implementation can be found at:

  https://github.com/mruddy/flexpiration


- Michael Ruddy