transaction prototype