Grant State Machine
Every grant moves through a defined set of statuses. Understanding these transitions is critical for building a reliable integration.
Status Reference
Creating a Grant
When you call addSingleGrant, the grant is created in PENDING status. The recipient receives an email notification.
Vesting Calculation
Once a grant reaches ACCEPTED, vestings are calculated automatically:
Standard 4-Year Schedule (48 months, 12-month cliff, 25% cliff)
Monitoring Vesting Progress
The percentageOfUnitsVested field updates as vestings occur. Poll periodically to track progress.
Termination
Terminates the grant and recalculates vestings — only tokens vested before the termination date are retained.
Future Termination
Set a termination date in the future. The grant remains active until that date.
Bulk Termination (Employee Departure)
Terminate all grants when an employee leaves:
Or terminate specific grants only:
Reverting a Termination
Made a mistake? Revert a termination to restore the grant and regenerate future vestings.
Single Grant
Bulk Revert
Reverting a termination regenerates all future vestings from the original schedule. Any settlements or distributions that were already processed for the terminated vestings are not affected.
Edge Cases
Grant with zero token amount
Fiat-only grants have grantAmount: 0. The grantAmountInFiat field holds the fiat value.
Multiple grants per employee
An employee can have multiple independent grants, each with its own vesting schedule. Use externalEmployeeID or roleInOrgID to find all grants for an employee.
Terminated then reverted
When a grant is reverted, it returns to ACCEPTED with the original vesting schedule fully restored. The termination is as if it never happened.
Future termination then reverted
A MARKED_FOR_FUTURE_TERMINATION grant can be reverted before the termination date arrives. It returns to ACCEPTED immediately.
Polling Strategy
Since webhooks are not yet available, poll for status changes: