protocols / NotaryChangeProtocol / Instigator

# Instigator

`class Instigator<T : ContractState> : Instigator<T, Party>`

### Constructors

<init> | `Instigator(originalState: StateAndRef<T>, newNotary: Party, progressTracker: ProgressTracker = tracker())`

### Properties

topic | `val topic: String` The topic to use when communicating with other parties. If more than one topic is required then use sub-protocols. Note that this is temporary until protocol sessions are properly implemented.

### Inherited Properties

modification | `val modification: T`
originalState | `val originalState: StateAndRef<S>`
progressTracker | `open val progressTracker: ProgressTracker` Override this to provide a ProgressTracker. If one is provided and stepped, the framework will do something helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track progress.

### Inherited Functions

call | `open fun call(): StateAndRef<S>` This is where you fill out your business logic.