Rollups to Mainnet

In order to keep costs down and transaction throughput high, we use a Layer 2 chain for transactions. We actually have two private chains, both are highly available fault-tolerant networks running in Windows Azure Availability Zones. Depending on a customer's needs for transaction finality one network is chosen over the other; both can be considered equivalent.

When Do Rollups Occur?

This is configurable. Currently, the schedule is the last day of the month. We also perform rollups after a chain infrastructure change as it's cheap, and it gives another checkpoint for layer 2 verification.

What is Rolled Up?

There are actually two rollups performed, this page details the Ethereum rollups that are performed, but we also perform rollups for the Bitcoin network. The Bitcoin rollups are performed in a similar manner, see here for details.

When the rollup occurs it takes the hash of the current block of the source chain (Penn) and notarises this on a Mainnet contract on Mainnet. See the below table for the rollups that have occurred.

Click on any of the Target Cain Transactions below, then click "+ Click to Show More" beside More Details. The Input Data uses the following format:

Start Length Description Example
0 10 Always 0x69d154b2, which is the function selector for notarise(uint256,uint256,address,bytes32) 0x69d154b2
10 64 The number of the block on the source chain that is being rolled up, zero padded to 64 characters. 00000000000000000000000000000000000000000000000000000000014a0344
74 64 The ASCII word "Roll" zero padded to 64 characters. 00000000000000000000000000000000000000000000000000000000526f6c6c
138 64 The address who this notarisation is performed on behalf of, this can be ignored. 000000000000000000000000c04c023df4da86ad2551b778fc4a5f9b237fc85b
202 64 The hash of the block on the source chain. 9efe3fa03be470f63f7c80df1207b9cce727caecea6d6d5bd3bf3c250acf8ed3

How Can I Verify the Private Chain?

The hashes of the chain prove its integrity. If you examine a block and look at the transactions inside you can use all the transaction hashes and importantly the hash of the previous block to calculate the current block's hash. If there is a discrepancy there is something wrong. When they match it shows the block is valid and has not been tampered with. You can do this for each block between rollups to verify that since the last rollup all transactions on the private chain are correct.

Where Is The Verification?

It makes no sense to provide proof that our network is valid, that is implied. If there is any question as to the validity of a transaction we provide them below for anyone to independently verify the chain.

Id Source Block Number Source Block Timestamp Source Block Hash Target Chain Transaction
4 0x125636 2/28/2026 8:00:10 AM 0x7461d56e2b2809a8763ed5d4f0873c2956f94d825fab348b4e56fd4c1133b186 0xbb89ac618705da339ee8749364e04d20cf416e181447b6761fdc52784c900cc6
3 0x0ca68d 2/19/2026 4:57:32 PM 0xc75797b34390478e0bfddf2df2733890a00ae7fd2db9e8435e974e776957d756 0xb22ca6f042d400287aded8a878fe999eb85336c065a6ddcbcfb7301f270b5afb