mikkhalev, к сожалению, Telegram API не позволяет делать это иначе.
Можно каждый раз присылать картинку, а после новое сообщение с пояснениями, вариантами и инлайном. Получается подобие диалога. Так делают официальные боты телеграма.
Арсений, нет же! utils.sp выполняет метод toString к аргументу, брошанному в него. message.user.coins возвращает null, а utils.sp не может выполнить метод toString к null.
В этом месте программы переменной message.user.coins ещё не присвоино значение, поэтому получается null.