Skip to main content

How to use

After following the introduction steps on how to initialize a transfer policy transaction you can call any of the available functions to prepare your Programmable Transaction Block (PTB).

Available functions

Withdraw profits

withdraw(address: string, amount?: bigint | number)

After setting up the manager, you can withdraw profits from the specified transfer policy.

amount is optional. Leave empty to withdraw all profits.

// ... tp transaction is initialized and policy is set.
// Withdraw 10 IOTA from the policy. Leave last parameter empty to withdraw all profits.
tpTx.withdraw('address_to_transfer_coin', 10_000_000_000);

Add/Remove rules

You can chain the actions when you're calling them, to add multiple rules.

After setting up the transaction, you can add any of the supported rules to the policy.

Royalty rule

addRoyaltyRule(percentage, minAmount)

You can add the royalty rule like the following example.

percentageToBasisPoints is a helper to convert a percentage (0.00-100%) to basis points.

Use minAmount to set a minimum amount per transaction, so that the royalty paid is MAX(percentage, min_amount). Use 0 for no minimum amount.

// ... tp transaction is initialized and policy is set.
tpTx.addRoyaltyRule(percentageToBasisPoints(30), 1_000_000_000);

You can remove the rule by calling:

tpTx.removeRoyaltyRule();

Kiosk lock rule

addLockRule()

You can add the kiosk lock rule like the following example.

// ... tp transaction is initialized and policy is set.
tpTx.addLockRule();

You can remove the rule by calling:

tpTx.removeLockRule();

Personal kiosk rule

addPersonalKioskRule()

You can add the kiosk lock rule like the following example.

// ... tp transaction is initialized and policy is set.
tpTx.addPersonalKioskRule();

You can remove the rule by calling:

tpTx.removePersonalKioskRule();

Floor price rule

addFloorPriceRule(price)

You can add the floor price rule like the following example:

// ... tp transaction is initialized and policy is set.
tpTx.addFloorPriceRule(10_000_000_000); // sets 10 IOTA as the floor price.

You can remove the rule by calling:

tpTx.removeFloorPriceRule();

Updating rules

If you want to update a rule, call the remove... function, and then call add again with the new settings.

Example:

// ... tp transaction is initialized and policy is set.
tpTx.removeRoyaltyRule().addRoyaltyRule(percentageToBasisPoints(20), 1_000_000_000);