Events
access-control.role-granted.provisional
A role was granted on the access-control manager; the grant is provisional until the indexer reaches the configured reorg depth.
A role was granted on the access-control manager; the grant is provisional until the indexer reaches the configured reorg depth.
Delivery contract
| Field | Value |
|---|---|
| Event type | access-control.role-granted.provisional |
| Version | 1 |
| Lifecycle state | provisional |
| Counter-signed receipt required | false |
| SDK type | Webhook.AccessControlRoleGrantedProvisionalV1 |
Related references:
idxr_access_control_role_member
Payload schema
{
"type": "object",
"properties": {
"accessManagerAddress": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{40}$"
},
"accountAddress": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{40}$"
},
"blockNumber": {
"type": "string"
},
"chainId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"roleId": {
"type": "string"
},
"sender": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{40}$"
},
"systemAddress": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{40}$"
},
"transactionHash": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
}
},
"required": [
"accessManagerAddress",
"accountAddress",
"blockNumber",
"chainId",
"roleId",
"sender",
"systemAddress",
"transactionHash"
],
"additionalProperties": false
}TypeScript SDK example
import { verifyWebhook, type Webhook } from "@settlemint/dalp-sdk";
const result = verifyWebhook({
rawBody,
headers,
secret: process.env.DALP_WEBHOOK_SECRET!,
});
if (!result.ok) {
throw new Error(`Webhook verification failed: ${result.code}`);
}
if (result.event.type === "access-control.role-granted.provisional") {
const event: Webhook.Event<"access-control.role-granted.provisional"> = result.event;
console.log(event.payload);
}curl example
curl -X POST https://consumer.example.com/dalp/webhooks \
-H "content-type: application/json" \
-H "webhook-id: evt_docs_access_control_role_granted_provisional_001" \
-H "webhook-timestamp: 1778112000" \
-H "webhook-signature: v1,docs-example-signature" \
--data '{"evt_id":"evt_docs_access_control_role_granted_provisional_001","type":"access-control.role-granted.provisional","version":1,"lifecycle_state":"provisional","request":{"idempotency_key":"idem_01JZP7R5W8M9N0P1Q2R3S4T5"},"related":{"idxr_access_control_role_member":"idxr_access_control_role_member_example"},"payload":{"accessManagerAddress":"0x1111111111111111111111111111111111111111","accountAddress":"0x2222222222222222222222222222222222222222","blockNumber":"18445201","chainId":537001,"roleId":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","sender":"0x3333333333333333333333333333333333333333","systemAddress":"0x4444444444444444444444444444444444444444","transactionHash":"0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}}'Version history
v1: Initial registry entry foraccess-control.role-granted.provisional.
Deprecation
This event type is not deprecated.
Manifest
The machine-readable AsyncAPI entry is published in the DALP events manifest.
Idempotency and on-chain outcome
Reconcile cached DAPI mutation responses with webhook-only on-chain outcomes, including final, retracted, and recalled events.
access-control.role-revoked.provisional
A role was revoked on the access-control manager; the revocation is provisional until the indexer reaches the configured reorg depth.