Last reviewed 2026-09-05Skill version 0.1.0Provisional
Prove that the receiving server denied the message permanently. A bounce event with the type bounce states it. A block states the type blocked, and a block never satisfies this level.
How does the evidence correlate with this operation?
Strategy
Assurance
Keys
Required
resource_id
strong
provely_operation_id from $action.result.provely_operation_id
yes
fingerprint
weak
email from $input.to
no
Which evidence does the contract require?
Minimum evidence level E3. An independent channel is required. Minimum channels: 1.
Channel
Level
Independence
Verifier
Description
processed_by_recipient
E3
provider event
webhook
The processed events for this recipient since the operation started, whatever custom argument they carry. A count above one shows a second message. The verifier returns {events, count, latest, earliest, types, duplicates_dropped}.
hard_bounce_events
E3
provider event
webhook
The bounce events of this operation that state the type bounce. A hard bounce is a permanent denial. The match drops a block, which is a temporary denial. The verifier returns {events, count, latest, earliest, types, duplicates_dropped}.
processed_events
E3
provider event
webhook
The processed events that carry the custom argument of this operation. Twilio SendGrid accepted the message and can deliver it. The verifier returns {events, count, latest, earliest, types, duplicates_dropped}.
delivered_events
E3
provider event
webhook
The delivered events that carry the custom argument of this operation. The receiving server accepted the message. The verifier returns {events, count, latest, earliest, types, duplicates_dropped}.
dropped_events
E3
provider event
webhook
The dropped events of this operation. Twilio SendGrid dropped the message, and it never reached a receiving server. The verifier returns {events, count, latest, earliest, types, duplicates_dropped}.
Which conditions must all hold for VERIFIED?
Condition
Meaning
Path
Operator
Expected
Evidence
hard_bounce_present
At least one bounce event of this operation states the type bounce. The denial is permanent.
$observed.hard_bounce_events.count
gte
1
hard_bounce_events
hard_bounce_present_in_window
The provider clock of the earliest matched event is after the start of the operation. An older event belongs to another send.