A future is a derivative (in that its priced is derived from) on an underlying instrument. You can represent anything with a future, from commodities, to currencies, to stocks, to cryptocurrencies.
Futures contracts have an expiration date in the future that dictates the final price of the contract, however one does not need to wait until the expiration to realize gains in a futures trade. Prices move in real time and one can open and close a position in the same day (or second) to realize gains/losses in that trade.
During the normal course of trading, prices of futures contracts may differ from the underlying instrument's cash (spot) prices. At expiration, however, the futures contract will converge to the underlying spot price because the future's settlement rules dictate that the spot price is used to settle (pay out) the longs and shorts of that contract.