According to the Wikipedia and Philippe Oechslin's Making a Faster Cryptanalytic Time-Memory Trade-Off (pdf), both starting points and endpoints are keys. Here is an example from Wikipedia:
As you can see, key
kiebgt is the endpoint of this chain.
However, according to this site, it is hash values, rather than keys, that are stored in a rainbow table. That is to say, in the example above, hash value
920ECF10 should be shored as an endpoint.
So which one is the correct approach? The second one seems better to me, because we can skip one calculation(the first step) of reduction function R when looking up.