[Guide](https://yamenmerhi.medium.com/nicks-method-ethereum-keyless-execution-168a6659479c)
- Nick’s factory allows for a transaction’s signature to be manipulated in order to deploy a contract to an unowned address.
General process
1. Transaction before signing
```json
{
nonce: "0x00",
gasPrice: "0x09184e72a000",
gasLimit: "0x27100",
to: "0x0000000000000000000000000000000000000000",
value: "0x01",
data: "0x7f7465737432000000000000000000000000000000000000000000000000000000600057,
}
```
1. Transaction after signing
```json
{
nonce: "0x00",
gasPrice: "0x09184e72a000",
gasLimit: "0x27100",
to: "0x0000000000000000000000000000000000000000",
value: "0x01",
data: "0x7f7465737432000000000000000000000000000000000000000000000000000000600057",
v: "0x26",
r: "0x223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20e",
s: "0x2aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663,
}
```
- The key here is to not sign a transaction with a private key but rather generate random values for `v`, `r`, `s` (the signature will be valid for most randomly generated values.
1. [erecover](erecover%20compute%20a%20public%20key%20from%20a%20signature.md) will then recover the public address (required to compute the new contract address) from the `v`, `r`, `s` signature values and the transaction data hash
2. The recovered address has to be funded prior to the submission of the transaction
3. The transaction is finally broadcasted to the network
Deploying a contract using [`CREATE2`](EIP-1014%20-%20Skinny%20CREATE2.md)
- A contract address is computed from the deployers public address and the deployer’s account nonce.
1. Generate a tx of type 0 (legacy)
- Nonce
- gasPrice
- gasLimit
- value (”0x00” which is 0 bytes since we’re not sending any ether)
- data
2. Add a `v` field with value `0x1b` (27 bytes)
3. Add random values for `r`, `s`
4. Recover the address of the deployer using [erecover](erecover%20compute%20a%20public%20key%20from%20a%20signature.md)
5. Serialise the transaction to generate the raw transaction to be broadcasted to the network
6. Fund the deploy address obtained with [erecover](erecover%20compute%20a%20public%20key%20from%20a%20signature.md) with `gasPrice * gasLimit` to target networks
7. Broadcast the raw tx to all target networks
*Note that since the contract address is computed as a function of the deployer’s address and a nonce, it is possible to manipulate the values of `r` and `s` to customise the characters of a contract such as `0xFaC10` → Factory*