[#Descriptor-Expand]
= xref:Descriptor.adoc[Descriptor]::Expand
:relfileprefix: ../
:mrdocs:

Expand a descriptor at a specified position&period;

== Synopsis

Declared in `&lt;script&sol;descriptor&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
virtual
bool
Expand(
    int pos,
    xref:SigningProvider.adoc[SigningProvider] const& provider,
    std::vector&lt;CScript&gt;& output&lowbar;scripts,
    xref:FlatSigningProvider.adoc[FlatSigningProvider]& out,
    xref:DescriptorCache.adoc[DescriptorCache]* write&lowbar;cache = nullptr) const = 0;
----

== Return Value

True if the descriptor could be expanded at the position&period;

== Parameters

[cols="1,4"]
|===
| Name| Description
| *pos* [in]
| The position at which to expand the descriptor&period; If IsRange() is false, this is ignored&period;
| *provider* [in]
| The provider to query for private keys in case of hardened derivation&period;
| *output&lowbar;scripts* [out]
| The expanded scriptPubKeys&period;
| *out* [out]
| Scripts and public keys necessary for solving the expanded scriptPubKeys (may be equal to `provider`)&period;
| *write&lowbar;cache* [out]
| Cache data necessary to evaluate the descriptor at this point without access to private keys&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
