POLICY_CHANGE_REQUEST_CREATED webhook (Ask Bitpanda Custody to set this up) and then ask Bitpanda Custody to create the policy change, wait for the webhook, and call the Add Signature Mutation API endpoint to sign with your new external keyunverifiedDigestData.signData and use the SHA256 hashing algorithmunverifiedDigestData.shaSignDatasecp256r1 (also known as P-256 and prime256v1) curve. Please note this is the "r" curve (sometimes called the "p" curve) which is different to the "k" curve that Bitcoin or Ethereum uses.AsymmetricECC_NIST_P256ECDSA_SHA_256-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEI8zNvjURIX2LVEQn49icMqDaydvX
5ZLRxsL4M33gKAcZ4Nm4VlziXyyG2ddHCZ3vmp7UYtZGcr8Xa/8c4wuyYg==
-----END PUBLIC KEY-----Array
(
[bits] => 256
[key] => -----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEI8zNvjURIX2LVEQn49icMqDaydvX
5ZLRxsL4M33gKAcZ4Nm4VlziXyyG2ddHCZ3vmp7UYtZGcr8Xa/8c4wuyYg==
-----END PUBLIC KEY-----
[ec] => Array
(
[curve_name] => prime256v1
[curve_oid] => 1.2.840.10045.3.1.7
[x] => 23cccdbe3511217d8b544427e3d89c32a0dac9dbd7e592d1c6c2f8337de02807
[y] => 19e0d9b8565ce25f2c86d9d747099def9a9ed462d64672bf176bff1ce30bb262
)
[type] => 3
)prime256v1 confirms this is on the correct curve.x value and the y value can simply be concatenated with 04 at the front to produce the publicKey in the format TrustVault requires.0423cccdbe3511217d8b544427e3d89c32a0dac9dbd7e592d1c6c2f8337de0280719e0d9b8565ce25f2c86d9d747099def9a9ed462d64672bf176bff1ce30bb262walletId, please reach out for help.{
"walletId": "<walletId>",
"delegateSchedules": [
[
{
"quorumCount": 1,
"keys": ["04fd8a5ac45dcdaa4a975e4cc1cc32d08c4f67705bd3bd61fe6d7e03f82af34c2881a287d625803d6ff4e7857904b75290e859f6c10f49f38f69fa77777672262a"]
}
]
]
requestId which you should save to use in the next mutation.mutation(
$requestId: String!
$publicKeySignaturePairs: [PublicKeySignaturePair!]!
) {
addSignature(
addSignatureInput: {
requestId: $requestId
signRequests: [
{
publicKeySignaturePairs: $publicKeySignaturePairs
}
]
}
) {
requestId
}
}requestId is obtained from the mutation to create the policy change.publicKey is your publicKey in the format mentioned above.signature is your signature in raw format. This should be the r and s value concatenated.{
"requestId": "e125d4ea-1ce5-0e69-275f-a11939c33e1a",
"publicKeySignaturePairs": [
{
"publicKey": "04fd8a5ac45dcdaa4a975e4cc1cc32d08c4f67705bd3bd61fe6d7e03f82af34c2881a287d625803d6ff4e7857904b75290e859f6c10f49f38f69fa77777672262a",
"signature": "2f660e6ae78cbfc33c21d1cd9ff9bc16f51b51163aa375ce1819aa8fdc199a2021dc85b41b86a7a5efc75b595dfa9b8d2e93553831cce86e4a727b6153dd253b"
}
]
}