A Promise can be in one of three states: 1) Pending: initial state, neither fulfilled nor rejected, 2) Fulfilled: operation completed successfully, 3) Rejected: operation failed. Important characteristics: a) State can only change once (from pending to either fulfilled or rejected), b) Once settled (fulfilled or rejected), a Promise can never change its state, c) This immutability provides guarantees about async operation handling.