Pure Proxy replication on Asset Hub via Root Referendum

There are multiple projects on Polkadot that use multisig accounts that control pure proxies to manage DOT for security and efficiency. When treasury.spend call was introduced, it allowed for access to DOT and assets like USDC/USDT on Asset Hub directly through an OpenGov referendum on Polkadot. But this caught projects using pure proxy multisig accounts by surprise. The issue is that the pure proxy account creation on Relay chain follows a process that takes some randomness into account, which is not possible to replicate on other chains like Asset Hub. There are a few projects like Heroic and PBA that have assets on the Asset Hub account which is currently not accessible to their multiig account.

Thanks to @bkchr 's tutorial on replicating pure proxies on other chains, now we have a mechanism to grant the rightful access to the funds locked away on Asset Hub to projects like Heroic and PBA.

This has been thoroughly tested using following the instructions on the Polkadot Wiki doc that shows how to test referenda that send cross chain calls.

Here is the snapshot of Pure Proxy replication of Heroic project on Asset Hub test setup using Chopsticks tool.

If there are other projects that landed in a similar situation, please add to this discussion and we can work towards submitting a batch call as a Root track referendum.

7 Likes

All tests are now complete. Here are the Pure Proxy setups on the Polkadot relay chain that will be replicated on Asset Hub.

Heroic

Heroic Pure Proxy: 12RP5AAF8TEb4qVBgiAgJXMVF8NzYZZPD8XftcKD7sM153E7

Heroic Multisig: 16Cf2SMFkWMApL7fiaiu3nSFiVk3wZoNHn7QTzTL1KvLDMcT

Heroic Pure Proxy Asset Hub Balance: 105573 USDT

PBA

PBA Pure Proxy: 15UQ1nhCRRJoWf1C4LBraqCVXS91qPiWLiWQfnS3k8Dk4R79

PBA Multisig: 1kJLyFPntELGnaawpDLzidR7rXaX4wQMPbd9ShQQZ3LK1Nh

PBA Pure Proxy Asset Hub Balance: 478202 USDT

Asset Hub Call to replicate pure proxy setup for Heroic and PBA

0x28000400040821011809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85b8eb348ef415147e3ed46c4f3489ddd332eef9da8c350e6e46ed3f4860bd1b6eae99e5eff3218ac1d804e610de98fd517f137bacce132c9cd3c3669afa0ec10a5fc83f9b09f0389fc78400000000000000000000000000000000000000000021011809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85ed956e0a56bcce19c5d607c5643cace51ad268171f8b62bc30a1913178c92393f3a7b1ef3283e316d8042105f0436e619530bc1971339a09639c5d42a52048f375b2ac06cdf05667f9ac000000000000000000000000000000000000000000

Weight: 210632379

XCM call to be sent from Root Origin through Polkadot OpenGov

0x630004000100a10f04082f00000602eefa373200210428000400040821011809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85b8eb348ef415147e3ed46c4f3489ddd332eef9da8c350e6e46ed3f4860bd1b6eae99e5eff3218ac1d804e610de98fd517f137bacce132c9cd3c3669afa0ec10a5fc83f9b09f0389fc78400000000000000000000000000000000000000000021011809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85ed956e0a56bcce19c5d607c5643cace51ad268171f8b62bc30a1913178c92393f3a7b1ef3283e316d8042105f0436e619530bc1971339a09639c5d42a52048f375b2ac06cdf05667f9ac000000000000000000000000000000000000000000

This XCM call will be submitted as a preimage.

This has been thoroughly tested using Chopsticks. Below is the snapshot of XCM message received by Asset Hub.

The chain state on Asset Hub is queried to check if the Pure Proxy setups are replicated.

The referendum is ready to be submitted to the Root track. Although, with the help of @josep 's script https://github.com/josepot/pure-proxy-ah-trapped has identified another pure proxy account with significant funds locked away on Asset Hub (rest of the accounts have less than 10 USDC in assets).

1tCybVtS7otBAK5CnbDwJQumWmfEWTCXRaYZM9UtihTQ1Dt with 26604 USDC. Will reach out to the publicly identifiable account owners of the multisig and check their sense of urgency.

1 Like

Heroic

Heroic Pure Proxy: 12RP5AAF8TEb4qVBgiAgJXMVF8NzYZZPD8XftcKD7sM153E7

Heroic Multisig: 16Cf2SMFkWMApL7fiaiu3nSFiVk3wZoNHn7QTzTL1KvLDMcT

Heroic Pure Proxy Asset Hub Balance: 105573 USDT

PBA

PBA Pure Proxy: 15UQ1nhCRRJoWf1C4LBraqCVXS91qPiWLiWQfnS3k8Dk4R79

PBA Multisig: 1kJLyFPntELGnaawpDLzidR7rXaX4wQMPbd9ShQQZ3LK1Nh

PBA Pure Proxy Asset Hub Balance: 478202 USDT

Polytope Labs Affiliated Account

Polytope Pure Proxy: 15UQ1nhCRRJoWf1C4LBraqCVXS91qPiWLiWQfnS3k8Dk4R79

Polytope Multisig: 12w4jGrxQuWRqHr1dCoJZS8Ez8eoUdqVbCA7n1ze584umJoy

Polytope Pure Proxy Asset Hub Balance: 26604 USDC

Call to be executed on Asset Hub to replicate the pure proxy setups

{
  "type": "Utility",
  "value": {
    "type": "batch",
    "value": {
      "calls": [
        {
          "type": "System",
          "value": {
            "type": "set_storage",
            "value": {
              "items": [
                [
                  "0x1809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85b8eb348ef415147e3ed46c4f3489ddd332eef9da8c350e6e46ed3f4860bd1b6eae99e5eff3218ac1",
                  "0x04e610de98fd517f137bacce132c9cd3c3669afa0ec10a5fc83f9b09f0389fc784000000000000000000000000000000000000000000"
                ],
                [
                  "0x1809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85ed956e0a56bcce19c5d607c5643cace51ad268171f8b62bc30a1913178c92393f3a7b1ef3283e316",
                  "0x042105f0436e619530bc1971339a09639c5d42a52048f375b2ac06cdf05667f9ac000000000000000000000000000000000000000000"
                ],
                [
                  "0x1809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85ac7aae77f99aa46b270dd464f83113c80c26de91e0fe75b56f02eca13cbfd778b850cc8278d2aa2d",
                  "0x04557809a870de383fa9421e47d9be561c1da99a6d144a0d8f7778f7bc0d9efc03000000000000000000000000000000000000000000"
                ]
              ]
            }
          }
        }
      ]
    }
  }
}

0x28000400040c21011809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85b8eb348ef415147e3ed46c4f3489ddd332eef9da8c350e6e46ed3f4860bd1b6eae99e5eff3218ac1d804e610de98fd517f137bacce132c9cd3c3669afa0ec10a5fc83f9b09f0389fc78400000000000000000000000000000000000000000021011809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85ed956e0a56bcce19c5d607c5643cace51ad268171f8b62bc30a1913178c92393f3a7b1ef3283e316d8042105f0436e619530bc1971339a09639c5d42a52048f375b2ac06cdf05667f9ac00000000000000000000000000000000000000000021011809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85ac7aae77f99aa46b270dd464f83113c80c26de91e0fe75b56f02eca13cbfd778b850cc8278d2aa2dd804557809a870de383fa9421e47d9be561c1da99a6d144a0d8f7778f7bc0d9efc03000000000000000000000000000000000000000000

reftime: 311489002

XCM Call to be sent from Polkadot Relay chain with the Root origin

{
  "type": "XcmPallet",
  "value": {
    "type": "send",
    "value": {
      "dest": {
        "type": "V4",
        "value": {
          "parents": 0,
          "interior": {
            "type": "X1",
            "value": {
              "type": "Parachain",
              "value": 1000
            }
          }
        }
      },
      "message": {
        "type": "V4",
        "value": [
          {
            "type": "UnpaidExecution",
            "value": {
              "weight_limit": {
                "type": "Unlimited"
              }
            }
          },
          {
            "type": "Transact",
            "value": {
              "origin_kind": {
                "type": "Superuser"
              },
              "require_weight_at_most": {
                "ref_time": "311489002n",
                "proof_size": "0n"
              },
              "call": "0x28000400040c21011809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85b8eb348ef415147e3ed46c4f3489ddd332eef9da8c350e6e46ed3f4860bd1b6eae99e5eff3218ac1d804e610de98fd517f137bacce132c9cd3c3669afa0ec10a5fc83f9b09f0389fc78400000000000000000000000000000000000000000021011809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85ed956e0a56bcce19c5d607c5643cace51ad268171f8b62bc30a1913178c92393f3a7b1ef3283e316d8042105f0436e619530bc1971339a09639c5d42a52048f375b2ac06cdf05667f9ac00000000000000000000000000000000000000000021011809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85ac7aae77f99aa46b270dd464f83113c80c26de91e0fe75b56f02eca13cbfd778b850cc8278d2aa2dd804557809a870de383fa9421e47d9be561c1da99a6d144a0d8f7778f7bc0d9efc03000000000000000000000000000000000000000000"
            }
          }
        ]
      }
    }
  }
}

0x630004000100a10f04082f00000602aac7434a00250628000400040c21011809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85b8eb348ef415147e3ed46c4f3489ddd332eef9da8c350e6e46ed3f4860bd1b6eae99e5eff3218ac1d804e610de98fd517f137bacce132c9cd3c3669afa0ec10a5fc83f9b09f0389fc78400000000000000000000000000000000000000000021011809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85ed956e0a56bcce19c5d607c5643cace51ad268171f8b62bc30a1913178c92393f3a7b1ef3283e316d8042105f0436e619530bc1971339a09639c5d42a52048f375b2ac06cdf05667f9ac00000000000000000000000000000000000000000021011809d78346727a0ef58c0fa03bafa3231d885dcfb277f185f2d8e62a5f290c85ac7aae77f99aa46b270dd464f83113c80c26de91e0fe75b56f02eca13cbfd778b850cc8278d2aa2dd804557809a870de383fa9421e47d9be561c1da99a6d144a0d8f7778f7bc0d9efc03000000000000000000000000000000000000000000

Preimage Hash: 0xfaf7ecf0f74fdcc1d51e6795f849f26f3861c4f82a8e84008a58fc41106db793

Preimage Length: 451

Social Media Editorial Board Multisig: 12k979BFp7JczuaHEvg7KpPwNkpHSNu5NYQRSL9cFjr7rdhh

Social Media Editorial Board Pure Proxy: 1VNSqFCX4Gk7R8kKBbEaYhXSioBGLrrL4kHgLwDkoTLkgqB

Social Media Editorial Board Pure Proxy Asset Hub Balance: 75000 USDT

New referendum has been submitted to accommodate them (they claimed assets on Nov 20th after the earlier root referendum was submitted) Pure Proxy Replication for accounts with inaccessible funds on Asset Hub