generate && transfer promise