first token service implementation

`key` here is always `tokenID` right?