Skip to content

Virtual Operations

Virtual operations are generated by the blockchain itself during block processing. They are never broadcast by users — they appear only in account history and block data for informational purposes.

Virtual operations share the same operation variant as regular operations but carry higher type IDs. They can be observed via the account_history API or block streaming.


Content Payouts (deprecated)

author_reward_operation (ID 26)

Trigger: Content post payout

Fired when an author receives their reward share from a content payout.

FieldTypeDescription
authoraccount_name_typeContent author
permlinkstringContent permlink
token_payoutasset (VIZ)Liquid VIZ portion
vesting_payoutasset (SHARES)Vested portion

curation_reward_operation (ID 27)

Trigger: Content post payout

Fired when a curator receives their curation reward.

FieldTypeDescription
curatoraccount_name_typeCurator account
rewardasset (SHARES)Curation reward
content_authoraccount_name_typeAuthor of curated content
content_permlinkstringPermlink of curated content

content_reward_operation (ID 28)

Trigger: Content post payout

Fired when a post reaches its payout time.

FieldTypeDescription
authoraccount_name_typeContent author
permlinkstringContent permlink
payoutassetTotal payout amount

content_payout_update_operation (ID 32)

Trigger: Content payout recalculation (e.g. after vote changes)

FieldTypeDescription
authoraccount_name_typeContent author
permlinkstringContent permlink

content_benefactor_reward_operation (ID 33)

Trigger: Content post payout — fires for each beneficiary

FieldTypeDescription
benefactoraccount_name_typeBeneficiary account
authoraccount_name_typeContent author
permlinkstringContent permlink
rewardassetBeneficiary reward share

Vesting Withdrawals

fill_vesting_withdraw_operation (ID 29)

Trigger: Each vesting withdrawal interval fires

Fired once per interval for each active withdrawal route.

FieldTypeDescription
from_accountaccount_name_typeAccount withdrawing
to_accountaccount_name_typeDestination account (may differ via withdrawal route)
withdrawnasset (SHARES)SHARES amount withdrawn this interval
depositedassetDeposited to to_account (VIZ, or SHARES if auto_vest = true)
json
[29, {
  "from_account": "alice",
  "to_account": "alice",
  "withdrawn": "35.714285 SHARES",
  "deposited": "10.000 VIZ"
}]

return_vesting_delegation_operation (ID 34)

Trigger: End of 7-day return window after delegate_vesting_shares_operation with zero amount

FieldTypeDescription
accountaccount_name_typeAccount receiving returned SHARES
vesting_sharesasset (SHARES)SHARES returned from limbo

Validator Operations

shutdown_validator_operation (ID 30)

Trigger: Validator deactivated due to insufficient vote weight

FieldTypeDescription
owneraccount_name_typeValidator that was shut down

validator_reward_operation (ID 42)

Trigger: Block produced — validator receives block reward

FieldTypeDescription
witnessaccount_name_typeValidator account
sharesasset (SHARES)Block reward
json
[42, {
  "witness": "alice",
  "shares": "1.234567 SHARES"
}]

Network Events

hardfork_operation (ID 31)

Trigger: Network hardfork activates

FieldTypeDescription
hardfork_iduint32_tHardfork number

Awards

receive_award_operation (ID 48)

Trigger: award_operation or fixed_award_operation

Fired for the primary receiver of an award.

FieldTypeDescription
initiatoraccount_name_typeAccount that gave the award
receiveraccount_name_typeAccount that received the award
custom_sequenceuint64_tApp-defined sequence from the award operation
memostringMemo from the award operation
sharesasset (SHARES)SHARES received
json
[48, {
  "initiator": "alice",
  "receiver": "bob",
  "custom_sequence": 0,
  "memo": "great article!",
  "shares": "5.000000 SHARES"
}]

benefactor_award_operation (ID 49)

Trigger: award_operation or fixed_award_operation with beneficiaries

Fired once per beneficiary.

FieldTypeDescription
initiatoraccount_name_typeAccount that gave the award
benefactoraccount_name_typeBeneficiary account
receiveraccount_name_typePrimary receiver of the award
custom_sequenceuint64_tApp-defined sequence
memostringMemo from the award operation
sharesasset (SHARES)SHARES received by beneficiary

Committee

committee_cancel_request_operation (ID 38)

Trigger: Committee funding request expires without reaching approval threshold

FieldTypeDescription
request_iduint32_tID of the cancelled request

committee_approve_request_operation (ID 39)

Trigger: Committee funding request reaches the required approval threshold

FieldTypeDescription
request_iduint32_tID of the approved request

committee_payout_request_operation (ID 40)

Trigger: Committee request payout is processed

FieldTypeDescription
request_iduint32_tID of the paid request

committee_pay_request_operation (ID 41)

Trigger: Worker receives payment from the committee fund

FieldTypeDescription
workeraccount_name_typeWorker account
request_iduint32_tCommittee request ID
tokensasset (VIZ)Amount paid to worker
json
[41, {
  "worker": "alice",
  "request_id": 42,
  "tokens": "250.000 VIZ"
}]

Trigger: paid_subscribe_operation executed, or auto-renewal payment processed

FieldTypeDescription
subscriberaccount_name_typeSubscriber account
accountaccount_name_typeSubscription provider
leveluint16_tSubscription tier
amountasset (VIZ)Payment amount
perioduint16_tNumber of periods
summary_duration_secuint64_tCumulative subscription duration (seconds)
summary_amountasset (VIZ)Total amount paid to date

cancel_paid_subscription_operation (ID 53)

Trigger: Subscription expires, or insufficient balance for auto-renewal

FieldTypeDescription
subscriberaccount_name_typeSubscriber account
accountaccount_name_typeSubscription provider

Account Market

account_sale_operation (ID 57)

Trigger: buy_account_operation completes successfully

FieldTypeDescription
accountaccount_name_typeAccount that was sold
priceasset (VIZ)Sale price
buyeraccount_name_typeBuyer account
selleraccount_name_typeSeller (payment recipient)
json
[57, {
  "account": "alice",
  "price": "1000.000 VIZ",
  "buyer": "bob",
  "seller": "alice"
}]

bid_operation (ID 62)

Trigger: New bid placed on an account listed for auction

FieldTypeDescription
accountaccount_name_typeAccount being bid on
bidderaccount_name_typeAccount placing the bid
bidasset (VIZ)Bid amount

outbid_operation (ID 63)

Trigger: A previous bid is replaced by a higher bid

Fired for the outbid account; the previous bid amount is returned.

FieldTypeDescription
accountaccount_name_typeAccount being bid on
bidderaccount_name_typeAccount that was outbid
bidasset (VIZ)Returned bid amount

Escrow

expire_escrow_ratification_operation (ID 59)

Trigger: Escrow ratification_deadline missed — neither to nor agent approved in time

All locked funds return to from.

FieldTypeDescription
fromaccount_name_typeOriginal escrow sender
toaccount_name_typeIntended recipient
agentaccount_name_typeEscrow agent
escrow_iduint32_tEscrow ID
token_amountasset (VIZ)Returned token amount
feeasset (VIZ)Returned fee (agent not paid since escrow was not ratified)
ratification_deadlinetime_point_secDeadline that was missed

See also: Operations Overview, Awards, Committee.