1. A method of executing a transaction on a smartcard including a processor, a memory for storing a system program, an application program and for storing data and an interface enabling communication with an external processor in a local terminal adapted to access related data, said method comprising the steps of: determining from the data stored on the smartcard in a pre-transaction state if the transaction can be executed validly by the smartcard and, responsive to a positive determination, storing said pre-transaction state and a post-transaction state of said data; determining from the related data stored in a pre-transaction state and accessible by said external processor if the transaction can be executed validly by the external processor; in response to said determining steps being affirmative, executing said transaction on said smartcard and by said external processor; and in response to said smartcard or said external processor failing to execute said transaction, restoring said data and said related data to the or each pre-transaction state and destroying said stored post-transaction state of said data.