Skip to content


Allow ultra.nft.ft account to set maximum share limit for protocol fee, factory beneficiaries and promoter during first hand and second hand purchase

Technical Behavior

The required authorization is the ultra.nft.ft account managed by admins.

After the transaction execution the maximum share in basis points will be adjusted for protocol fee, factory beneficiaries and sale promoter. Additionally a default promoter may be configured

Action Parameters

typefactory_sale_share_typeIndicates a type of limits to change. 0 - second hand purchase, 1 - first hand purchase
configfactory_sale_share_limit_configObject detailing limits for specific types of sale shares

factory_sale_share_limit_config definition

max_ultra_share_bpuint16_tMaximum sale share for Ultra protocol in basis points
max_factory_share_bpuint16_tMaximum total share of all factory beneficiaries in basis points
min_promoter_share_bpuint16_tMinimum allowed promoter share in basis points
max_promoter_share_bpuint16_tMaximum allowed promoter share in basis points
default_promoterstd::optional<eosio::name>Default promoter account to be used if no promoter is specified
promoter_payments_enabledboolWhether the promoter payments should be enabled for this type of sale share

CLI - cleos

cleos push action eosio.nft.ft setsharelim '[0, [1000, 7000, 250, 1000, "ultra.nft.ft", true]]' -p ultra.nft.ft

JavaScript - eosjs

await api.transact(
        actions: [
                account: 'eosio.nft.ft',
                name: 'setsharelim',
                authorization: [{ actor: 'ultra.nft.ft', permission: 'active' }],
                data: {
                    type: 0,
                    config: {
                        max_ultra_share_bp: 1000,
                        max_factory_share_bp: 7000,
                        min_promoter_share_bp: 250,
                        max_promoter_share_bp: 1000,
                        default_promoter: 'ultra.nft.ft',
                        promoter_payments_enabled: true
        blocksBehind: 3,
        expireSeconds: 30,