Unlock Conditions
Outputs can have different unlock conditions. This how to exaplains how to add them to an output.
Client in Wallet
If you are using a wallet you can always get the client by calling the client()
/getClient()
/get_client()
method
Output Unlock Conditions
Different outputs can have different unlock conditions. This tables shows you which ouput is compatible with which unlock condition. You can find the output specs in TIP-018
Output | Address | Storage Deposit Return | Timelock | Expiration | State Controller Address | Governor Address | Immutable Alias Address |
---|---|---|---|---|---|---|---|
Basic | x | x | x | x | |||
Alias | x | x | |||||
Foundry | x | ||||||
NFT | x | x | x | x |
Code Example
The following example will:
- Create multiple outputs with all possible unlock conditions
- Rust
- Nodejs
- Python
sdk/examples/how_tos/outputs/unlock_conditions.rs
loading...
bindings/nodejs/examples/how_tos/outputs/unlock-conditions.ts
loading...
bindings/python/examples/how_tos/outputs/unlock_conditions.py
loading...
Expected Output
[
{
"type": 3,
"amount": "42600",
"unlockConditions": [
{
"type": 0,
"address": {
"type": 0,
"pubKeyHash": "0x7ffec9e1233204d9c6dce6812b1539ee96af691ca2e4d9065daa85907d33e5d3"
}
}
]
},
{
"type": 3,
"amount": "46800",
"unlockConditions": [
{
"type": 0,
"address": {
"type": 0,
"pubKeyHash": "0x7ffec9e1233204d9c6dce6812b1539ee96af691ca2e4d9065daa85907d33e5d3"
}
},
{
"type": 1,
"returnAddress": {
"type": 0,
"pubKeyHash": "0x7ffec9e1233204d9c6dce6812b1539ee96af691ca2e4d9065daa85907d33e5d3"
},
"amount": "1000000"
}
]
},
{
"type": 3,
"amount": "43100",
"unlockConditions": [
{
"type": 0,
"address": {
"type": 0,
"pubKeyHash": "0x7ffec9e1233204d9c6dce6812b1539ee96af691ca2e4d9065daa85907d33e5d3"
}
},
{
"type": 2,
"unixTime": 1
}
]
},
{
"type": 3,
"amount": "46400",
"unlockConditions": [
{
"type": 0,
"address": {
"type": 0,
"pubKeyHash": "0x7ffec9e1233204d9c6dce6812b1539ee96af691ca2e4d9065daa85907d33e5d3"
}
},
{
"type": 3,
"returnAddress": {
"type": 0,
"pubKeyHash": "0x7ffec9e1233204d9c6dce6812b1539ee96af691ca2e4d9065daa85907d33e5d3"
},
"unixTime": 1
}
]
},
{
"type": 4,
"amount": "50300",
"aliasId": "0x0000000000000000000000000000000000000000000000000000000000000000",
"stateIndex": 0,
"stateMetadata": "0x",
"foundryCounter": 0,
"unlockConditions": [
{
"type": 4,
"address": {
"type": 0,
"pubKeyHash": "0x7ffec9e1233204d9c6dce6812b1539ee96af691ca2e4d9065daa85907d33e5d3"
}
},
{
"type": 5,
"address": {
"type": 0,
"pubKeyHash": "0x7ffec9e1233204d9c6dce6812b1539ee96af691ca2e4d9065daa85907d33e5d3"
}
}
]
},
{
"type": 5,
"amount": "52800",
"serialNumber": 1,
"tokenScheme": {
"type": 0,
"mintedTokens": "0x32",
"meltedTokens": "0x0",
"maximumSupply": "0x64"
},
"unlockConditions": [
{
"type": 6,
"address": {
"type": 8,
"aliasId": "0xe8506eb1dc96cbe3b24ef8102551328bfff767393389e824e7cef199e52d87b6"
}
}
]
}
]