# External

External variables are provided to the FCT Engine as an array of bytes32 values by the activator. This values might contain any native type, e.g. uint256, bytes32, address, bool, etc.

#### Usage

*0xFC000....0000LLLL*\
\&#xNAN;*LLLL* holds the variable index inside the provided variable array (starting with 1)<br>

**External variable use four  range of values:**\
\
`For address types:`\
\&#xNAN;*`0xFC00000000000000000000000000000000000001`*\
`...`\
\&#xNAN;*`0xFC0000000000000000000000000000000000ffff`*\
\
`For uint256 and bytes32 types:`\
\&#xNAN;*`0xFC00000000000000000000000000000000000000000000000000000000000001`*\
`...`\
\&#xNAN;*`0xFC0000000000000000000000000000000000000000000000000000000000ffff`*<br>

{% hint style="success" %}
`FC stands for "Future Changeable"`
{% endhint %}

{% hint style="warning" %}
The activator sets values for variables when executing the FCT. Be careful when using external variables.
{% endhint %}

{% hint style="success" %}
A common use case is to build p2p swap FCT with two calls. The first one, for example, sending X tokens a variables address (0xFC...0001) and the second one is getting Y ether from that address (0xFC.....0001)
{% endhint %}
