tx: store as JSON