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.
| Field | Type | Description |
|---|---|---|
author | account_name_type | Content author |
permlink | string | Content permlink |
token_payout | asset (VIZ) | Liquid VIZ portion |
vesting_payout | asset (SHARES) | Vested portion |
curation_reward_operation (ID 27)
Trigger: Content post payout
Fired when a curator receives their curation reward.
| Field | Type | Description |
|---|---|---|
curator | account_name_type | Curator account |
reward | asset (SHARES) | Curation reward |
content_author | account_name_type | Author of curated content |
content_permlink | string | Permlink of curated content |
content_reward_operation (ID 28)
Trigger: Content post payout
Fired when a post reaches its payout time.
| Field | Type | Description |
|---|---|---|
author | account_name_type | Content author |
permlink | string | Content permlink |
payout | asset | Total payout amount |
content_payout_update_operation (ID 32)
Trigger: Content payout recalculation (e.g. after vote changes)
| Field | Type | Description |
|---|---|---|
author | account_name_type | Content author |
permlink | string | Content permlink |
content_benefactor_reward_operation (ID 33)
Trigger: Content post payout — fires for each beneficiary
| Field | Type | Description |
|---|---|---|
benefactor | account_name_type | Beneficiary account |
author | account_name_type | Content author |
permlink | string | Content permlink |
reward | asset | Beneficiary 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.
| Field | Type | Description |
|---|---|---|
from_account | account_name_type | Account withdrawing |
to_account | account_name_type | Destination account (may differ via withdrawal route) |
withdrawn | asset (SHARES) | SHARES amount withdrawn this interval |
deposited | asset | Deposited to to_account (VIZ, or SHARES if auto_vest = true) |
[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
| Field | Type | Description |
|---|---|---|
account | account_name_type | Account receiving returned SHARES |
vesting_shares | asset (SHARES) | SHARES returned from limbo |
Validator Operations
shutdown_validator_operation (ID 30)
Trigger: Validator deactivated due to insufficient vote weight
| Field | Type | Description |
|---|---|---|
owner | account_name_type | Validator that was shut down |
validator_reward_operation (ID 42)
Trigger: Block produced — validator receives block reward
| Field | Type | Description |
|---|---|---|
witness | account_name_type | Validator account |
shares | asset (SHARES) | Block reward |
[42, {
"witness": "alice",
"shares": "1.234567 SHARES"
}]Network Events
hardfork_operation (ID 31)
Trigger: Network hardfork activates
| Field | Type | Description |
|---|---|---|
hardfork_id | uint32_t | Hardfork number |
Awards
receive_award_operation (ID 48)
Trigger: award_operation or fixed_award_operation
Fired for the primary receiver of an award.
| Field | Type | Description |
|---|---|---|
initiator | account_name_type | Account that gave the award |
receiver | account_name_type | Account that received the award |
custom_sequence | uint64_t | App-defined sequence from the award operation |
memo | string | Memo from the award operation |
shares | asset (SHARES) | SHARES received |
[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.
| Field | Type | Description |
|---|---|---|
initiator | account_name_type | Account that gave the award |
benefactor | account_name_type | Beneficiary account |
receiver | account_name_type | Primary receiver of the award |
custom_sequence | uint64_t | App-defined sequence |
memo | string | Memo from the award operation |
shares | asset (SHARES) | SHARES received by beneficiary |
Committee
committee_cancel_request_operation (ID 38)
Trigger: Committee funding request expires without reaching approval threshold
| Field | Type | Description |
|---|---|---|
request_id | uint32_t | ID of the cancelled request |
committee_approve_request_operation (ID 39)
Trigger: Committee funding request reaches the required approval threshold
| Field | Type | Description |
|---|---|---|
request_id | uint32_t | ID of the approved request |
committee_payout_request_operation (ID 40)
Trigger: Committee request payout is processed
| Field | Type | Description |
|---|---|---|
request_id | uint32_t | ID of the paid request |
committee_pay_request_operation (ID 41)
Trigger: Worker receives payment from the committee fund
| Field | Type | Description |
|---|---|---|
worker | account_name_type | Worker account |
request_id | uint32_t | Committee request ID |
tokens | asset (VIZ) | Amount paid to worker |
[41, {
"worker": "alice",
"request_id": 42,
"tokens": "250.000 VIZ"
}]Paid Subscriptions
paid_subscription_action_operation (ID 52)
Trigger: paid_subscribe_operation executed, or auto-renewal payment processed
| Field | Type | Description |
|---|---|---|
subscriber | account_name_type | Subscriber account |
account | account_name_type | Subscription provider |
level | uint16_t | Subscription tier |
amount | asset (VIZ) | Payment amount |
period | uint16_t | Number of periods |
summary_duration_sec | uint64_t | Cumulative subscription duration (seconds) |
summary_amount | asset (VIZ) | Total amount paid to date |
cancel_paid_subscription_operation (ID 53)
Trigger: Subscription expires, or insufficient balance for auto-renewal
| Field | Type | Description |
|---|---|---|
subscriber | account_name_type | Subscriber account |
account | account_name_type | Subscription provider |
Account Market
account_sale_operation (ID 57)
Trigger: buy_account_operation completes successfully
| Field | Type | Description |
|---|---|---|
account | account_name_type | Account that was sold |
price | asset (VIZ) | Sale price |
buyer | account_name_type | Buyer account |
seller | account_name_type | Seller (payment recipient) |
[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
| Field | Type | Description |
|---|---|---|
account | account_name_type | Account being bid on |
bidder | account_name_type | Account placing the bid |
bid | asset (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.
| Field | Type | Description |
|---|---|---|
account | account_name_type | Account being bid on |
bidder | account_name_type | Account that was outbid |
bid | asset (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.
| Field | Type | Description |
|---|---|---|
from | account_name_type | Original escrow sender |
to | account_name_type | Intended recipient |
agent | account_name_type | Escrow agent |
escrow_id | uint32_t | Escrow ID |
token_amount | asset (VIZ) | Returned token amount |
fee | asset (VIZ) | Returned fee (agent not paid since escrow was not ratified) |
ratification_deadline | time_point_sec | Deadline that was missed |
See also: Operations Overview, Awards, Committee.