Sender
Stardust allows you to define optional Features on outputs of a transfer that do not impact the actual unlocking of the created output. The Sender feature lets the creator of the output define an explicit Sender Address attribute for the output.
The Sender attribute is validated on protocol level. Validation ensures that the transaction that created the output unlocked the Sender address on the input side. Therefore, this feature is a protocol validated proof that the output was created by someone who controls the Sender address.
Example Transaction
Transaction J shows how you can add a sender attribute to a created output. Note, that Transaction J would be invalid if:
- Basic Output #15 wouldn't be locked to senderAddress, or
- Basic Output #16 would define Sender as anything else than the senderAddress from Basic Output #15.
On-ledger requests (originating from L1) of IOTA Smart Contracts use this feature heavily, but it is also possible to fetch outputs created by a specific party with the Sender Feature through the INX UTXO indexer application and REST API.