Return all available information via RPC call "validateaddress" #6262

pull dexX7 wants to merge 1 commits into bitcoin:master from dexX7:btc-rpc-validateaddress-more-info changing 1 files +6 −15
  1. dexX7 commented at 4:05 PM on June 9, 2015: contributor

    "validateaddress" omits some information, even in cases where it's available.

    The primary motivation is to be able to retrieve redeemScripts, after using "addmultisigaddress", when not all keys are available, but the redeemScripts actually are.

    The output of "validateaddress" with this PR:

    Keys not available:

    validateaddress "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3"
    {
      "isvalid": true,
      "address": "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3",
      "scriptPubKey": "76a914fa20d564550b105787f7ce3a9ad7fd9a45cd407088ac",
      "ismine": false,
      "iswatchonly": false,
      "isscript": false
    }
    
    validateaddress "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK"
    {
      "isvalid": true,
      "address": "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK",
      "scriptPubKey": "a9146769c19a16c9400b908756e19a4d2afb9e9760e187",
      "ismine": false,
      "iswatchonly": false,
      "isscript": true
    }
    

    After adding the redeemScript:

    addmultisigaddress 2 '["02537357B156A33306A7A014A3748631C59DF405B56F11BA4AA4A3CE81501AF095","02F1FB200390E7864EF4450C07B15988179A57C3CF3A878F668E1070CB615749FE"]'
    2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK
    
    validateaddress "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK"
    {
      "isvalid": true,
      "address": "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK",
      "scriptPubKey": "a9146769c19a16c9400b908756e19a4d2afb9e9760e187",
      "ismine": false,
      "iswatchonly": false,
      "isscript": true,
      "script": "multisig",
      "hex": "522102537357b156a33306a7a014a3748631c59df405b56f11ba4aa4a3ce81501af0952102f1fb200390e7864ef4450c07b15988179a57c3cf3a878f668e1070cb615749fe52ae",
      "addresses": [
        "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3",
        "mmSKNtbYYHRrhTLKiok5TuYrGEs4Y2A4k6"
      ],
      "sigsrequired": 2,
      "account": ""
    }
    

    All keys available:

    importprivkey "cR47hEvnsFhF4WNG1E69tvVYEwqeEgW51WGJEJimxRyH8EajqBUE"
    importprivkey "cQnVk2cdUT6Kqg5kFAz1jXQVB1ksy9eBSMJzGXE8Ka7xBjwqarTB"
    
    validateaddress "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3"
    {
      "isvalid": true,
      "address": "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3",
      "scriptPubKey": "76a914fa20d564550b105787f7ce3a9ad7fd9a45cd407088ac",
      "ismine": true,
      "iswatchonly": false,
      "isscript": false,
      "pubkey": "02537357b156a33306a7a014a3748631c59df405b56f11ba4aa4a3ce81501af095",
      "iscompressed": true,
      "account": ""
    }
    
    validateaddress "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK"
    {
      "isvalid": true,
      "address": "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK",
      "scriptPubKey": "a9146769c19a16c9400b908756e19a4d2afb9e9760e187",
      "ismine": true,
      "iswatchonly": false,
      "isscript": true,
      "script": "multisig",
      "hex": "522102537357b156a33306a7a014a3748631c59df405b56f11ba4aa4a3ce81501af0952102f1fb200390e7864ef4450c07b15988179a57c3cf3a878f668e1070cb615749fe52ae",
      "addresses": [
        "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3",
        "mmSKNtbYYHRrhTLKiok5TuYrGEs4Y2A4k6"
      ],
      "sigsrequired": 2,
      "account": ""
    }
    
  2. Return all available information via validateaddress
    `"validateaddress"` omits some information, even in cases where is it available.
    
    The primary motivation is to be able to retrieve redeemScripts, after using `"addmultisigaddress"`, when not all keys are available in the keystore, but the redeemScript actually is.
    
    The output of `"validateaddress"` with this commit:
    
    Keys not available:
    ```js
    validateaddress "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3"
    {
      "isvalid": true,
      "address": "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3",
      "scriptPubKey": "76a914fa20d564550b105787f7ce3a9ad7fd9a45cd407088ac",
      "ismine": false,
      "iswatchonly": false,
      "isscript": false
    }
    ```
    ```js
    validateaddress "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK"
    {
      "isvalid": true,
      "address": "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK",
      "scriptPubKey": "a9146769c19a16c9400b908756e19a4d2afb9e9760e187",
      "ismine": false,
      "iswatchonly": false,
      "isscript": true
    }
    ```
    
    After adding the redeemScript:
    ```js
    addmultisigaddress 2 '["02537357B156A33306A7A014A3748631C59DF405B56F11BA4AA4A3CE81501AF095","02F1FB200390E7864EF4450C07B15988179A57C3CF3A878F668E1070CB615749FE"]'
    2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK
    
    validateaddress "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK"
    {
      "isvalid": true,
      "address": "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK",
      "scriptPubKey": "a9146769c19a16c9400b908756e19a4d2afb9e9760e187",
      "ismine": false,
      "iswatchonly": false,
      "isscript": true,
      "script": "multisig",
      "hex": "522102537357b156a33306a7a014a3748631c59df405b56f11ba4aa4a3ce81501af0952102f1fb200390e7864ef4450c07b15988179a57c3cf3a878f668e1070cb615749fe52ae",
      "addresses": [
        "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3",
        "mmSKNtbYYHRrhTLKiok5TuYrGEs4Y2A4k6"
      ],
      "sigsrequired": 2,
      "account": ""
    }
    ```
    
    All keys available:
    ```js
    validateaddress "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3"
    {
      "isvalid": true,
      "address": "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3",
      "scriptPubKey": "76a914fa20d564550b105787f7ce3a9ad7fd9a45cd407088ac",
      "ismine": true,
      "iswatchonly": false,
      "isscript": false,
      "pubkey": "02537357b156a33306a7a014a3748631c59df405b56f11ba4aa4a3ce81501af095",
      "iscompressed": true,
      "account": ""
    }
    ```
    ```js
    validateaddress "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK"
    {
      "isvalid": true,
      "address": "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK",
      "scriptPubKey": "a9146769c19a16c9400b908756e19a4d2afb9e9760e187",
      "ismine": true,
      "iswatchonly": false,
      "isscript": true,
      "script": "multisig",
      "hex": "522102537357b156a33306a7a014a3748631c59df405b56f11ba4aa4a3ce81501af0952102f1fb200390e7864ef4450c07b15988179a57c3cf3a878f668e1070cb615749fe52ae",
      "addresses": [
        "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3",
        "mmSKNtbYYHRrhTLKiok5TuYrGEs4Y2A4k6"
      ],
      "sigsrequired": 2,
      "account": ""
    }
    ```
    506bae3ac9
  3. laanwj added the label RPC on Jun 9, 2015
  4. jonasschnelli commented at 7:53 PM on June 11, 2015: contributor

    utACK

  5. laanwj added the label Feature on Jun 15, 2015
  6. sipa commented at 1:54 PM on June 16, 2015: member

    utACK

  7. laanwj commented at 4:30 PM on June 19, 2015: member

    Invalid address

    $ src/bitcoin-cli validateaddress msj42CCGruhRsFrGATiUuh25dtxYtnpbT
    {
      "isvalid": false
    }
    

    Valid, own address

    src/bitcoin-cli validateaddress msj42CCGruhRsFrGATiUuh25dtxYtnpbTx
    {
      "isvalid": true,
      "address": "msj42CCGruhRsFrGATiUuh25dtxYtnpbTx",
      "scriptPubKey": "76a91485eb47fe98f349065d6f044e27a4ac541af79ee288ac",
      "ismine": false,
      "iswatchonly": false,
      "isscript": false
    }
    

    Valid, non-own address

    $ src/bitcoin-cli validateaddress mpGLz2gJcVG75xgbwMVDXmruBBpuRRL9KQ
    {
      "isvalid": true,
      "address": "mpGLz2gJcVG75xgbwMVDXmruBBpuRRL9KQ",
      "scriptPubKey": "76a9145ff5d5286bd5c904f20935ff45cf59d865c745fd88ac",
      "ismine": false,
      "iswatchonly": false,
      "isscript": false
    }
    

    Imported watchonly address

    $ src/bitcoin-cli validateaddress mys3A1gFacVkCsCC1yw2GiASeDpjLXv1Cr
    {
      "isvalid": true,
      "address": "mys3A1gFacVkCsCC1yw2GiASeDpjLXv1Cr",
      "scriptPubKey": "76a914c93ea43293ecfbb3acffba423f0d85cf78d6a10e88ac",
      "ismine": false,
      "iswatchonly": true,
      "isscript": false,
      "account": ""
    }
    

    ACK

  8. laanwj merged this on Jun 19, 2015
  9. laanwj closed this on Jun 19, 2015

  10. laanwj referenced this in commit 247b91449a on Jun 19, 2015
  11. dexX7 cross-referenced this on Jun 20, 2015 from issue Return all available information via validateaddress by dexX7
  12. laanwj cross-referenced this on Nov 9, 2015 from issue Fix crash in validateaddress with -disablewallet by laanwj
  13. str4d cross-referenced this on Feb 14, 2017 from issue Bitcoin 0.12 RPC PRs 1 by str4d
  14. zkbot referenced this in commit 9af55822fb on Feb 15, 2017
  15. zkbot referenced this in commit a7cf698873 on Mar 4, 2017
  16. dagurval cross-referenced this on Jan 17, 2018 from issue Return all available information via RPC call "validateaddress" by dagurval
  17. bitcoin locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-05-20 06:55 UTC