I've read a lot about mangled/franken addresses recently. A mangled address is an address, where the payment part of the address belongs to a different wallet than the stake part. This is an important thing to consider when building DApps on Cardano.
I'm wondering how it is possible to create such an address.
To create a payment address using the cardano-cli, both the private payment key and the private stake key are required:
cardano-cli address build \
--payment-verification-key-file payment.vkey \
--stake-verification-key-file stake.vkey \
--out-file payment.addr \
--mainnet
Let's say we have Alice who owns wallet A and Bob who owns wallet B.
Alice doesn't have access to the private keys of Bob, so how can Alice create an address with the payment part of her wallet A and the stake part of Bob's wallet B?
Or the other way around: How can Alice create a mangled address with Bob's payment part of wallet B and her stake part of wallet A?
vkey
are just the verification keys not your private (signing) keys which haveskey
suffixes. So creating a franken address only requires someones else's payment or stakevkey
.