Deploy Layer 2
The "deploy" operation deploys a new Layer 2 blockchain on Bitcoin.
Parameters
p
: "l2o-a" (The ordinal protocol, which is"l2o-a"
)op
: "Deploy" (The operation id, which is "Deploy")l2id
: A unique unsigned 32bit number that identifies the layer 2 and which has not been previously registered.- Note: The l2id
0
is reserved for representing the Bitcoin Layer 1 blockchain - Note: if an incoming deploy operation specifies an l2id which has already been deployed, then the incoming deploy operation is NOOP
- Note: The l2id
start_state_root
: The start state root of the Layer 2 encoded as a 64 character hexadecimal stringpublic_key
: The public key which is used to verify the first block proof's signature- Note: if public_key is set to the empty string
""
or"0"
then the first block proof's signature is ignored
- Note: if public_key is set to the empty string
hash_function
: The hash function to be used for constructing the Deposit/Withdrawal Merkle Tree for the Layer 2, as well as selecting the Superchain Merkle Tree Variant used for Block Operations.- Allowed Values:
- "sha256" (See sha256)
- "poseidon-goldilocks" (See Poseidon Goldilocks)
- "keccack256" (See keccack256)
- "blake3" (See blake3)
- Allowed Values:
proof_type
: The proving protocol to be used for verifying the Layer 2's block proofs- Allowed Values:
- "Groth16BN128" (See Groth16BN128)
- Editors Note: More proving backends will be added over the coming weeks
- Allowed Values:
verifier_data
: The verifier data required to verify a block proof for this L2- Note: This is specific to the proof type, see Supported Proving Systems
Pseudo Schema
{
"p": "l2o-a",
"op": "Deploy",
"l2id": 1,
"start_state_root": "<the start state root for your L2, 0 if it is set by the first block proof>",
"public_key": "<the schnorr public key of the first block proof, 0 if no signature is required>",
"hash_function": "<the hash function used for stateful operations for this L2>",
"proof_type": "<proof type>",
"verifier_data": {
"...": "<verifier data required to verify a block proof for this L2>"
}
}