DeGrants Application Lifecycle
August 21, 2026
How a DeGrants application moves from submission to a completed grant. Written for applicants, stewards, admins, and anyone who needs the process in one place.
In one sentence
An application is reviewed and offered funding. A grant is created only after the applicant accepts the offer. Then the grantee submits a blueprint, delivers milestones, and finishes with an impact report.
Does the applicant need to accept if admin offers the full amount?
Yes. Approving the original amount and approving an adjusted amount both create an offer. The applicant must click Accept Offer in either case.
Approving never creates a grant by itself.
The two records
Application
The pitch and funding decision
Created when the applicant submits
Grant
The funded project with blueprint and milestones
Created only when the applicant accepts the offer
Applicants choose one funding amount when they apply: $3,000, $4,000, or $5,000.
End-to-end flow
Phase 1 β Applicant submits
Applicant logs in. Steward accounts cannot apply.
They fill the form at
/funding/apply(project, team, funding amount, milestones, acknowledgements).On submit, an application is created with status
Submitted.It appears in My DeGrants for the applicant and Review DeGrants for stewards and admins.
A Slack intake message is sent if Slack is configured.
The applicant waits. Scoring does not start automatically.
Phase 2 β After steward score
Steward scoring is review only. It does not approve, reject, or create an offer.
A steward opens
/funding/review-degrants/[id]/review.They score 6 criteria, each 1β5 (max 30):
Stacks ecosystem relevance
Community value
Feasibility and execution risk
Engagement and momentum
Applicant fit
Deliverables and timeline quality
Notes are required. They can recuse as conflicted.
They cannot score their own application.
They cannot score an application marked duplicate (scoring is locked).
The first score moves the application from
SubmittedtoUnderReview.Later stewards can still score. A steward can update their own score until an admin decides.
The average score is the average of non-conflicted reviews.
Slack posts that a review was submitted or updated.
After an admin decides, steward scores are locked.
Admins can decide even if there are zero steward scores. The review UI shows the average so they can use it.
Phase 3 β After admin decision
Only someone with grant-status permission sees the Admin Decision panel. There are three options.
A. Approve original amount (full amount)
Admin clicks Approve (original amount).
The system reads the requested amount from the application (
$3,000/$4,000/$5,000).Status becomes
Approved.offerAmountis set to that full requested amount.Optional decision notes are stored.
Applicant gets an in-app Grant offer made notification.
No grant is created yet.
B. Approve adjusted amount
Admin enters a custom USD amount and confirms.
Same as above: status
Approved,offerAmount= the adjusted number.Applicant still gets an offer notification.
Still no grant until they accept.
C. Reject
Admin clicks Reject politely.
Status becomes
Rejected.offerAmountis cleared.Applicant gets a Pitch rejected notification (notes included if written).
Process ends. No offer, no grant.
After any of these, the admin UI shows βalready decided,β and stewards can no longer change scores.
Phase 4 β Applicant accepts or declines
On My DeGrants β that application, if status is Approved, the applicant sees Youβve received a DeGrants offer with Accept / Decline.
This is required for both full-amount and adjusted-amount approvals.
If they accept
Only the applicant can do this, and only while status is
Approvedand no grant exists yet.The system creates a Grant:
awarded amount = the offer
requested amount = what they originally asked for
category = DeGrants
stage =
blueprintassigned steward = highest-scoring non-conflicted steward (if any)
Application status becomes
OfferAcceptedand is linked to that grant.The admin who decided gets Grant offer accepted.
Applicant is sent to
/funding/my-degrants/[grantId].Next required step: submit the project blueprint.
If they decline
Status becomes
OfferDeclined.No grant is created.
The deciding admin gets Grant offer declined.
Process ends. They cannot accept later from this application.
Phase 5 β After accept: blueprint
The grant starts at blueprint. There are no active milestones yet.
Applicant opens the grant and submits a blueprint:
overall scope of work
at least one milestone (name, scope, amount)
KYC document (required)
optional start date / deadline
Milestone amounts cannot exceed the awarded amount.
All milestones are created as
locked.Blueprint review status becomes
pending.Assigned steward is notified.
Then a steward or admin reviews.
Blueprint approved
All three must pass:
Blueprint: approve
KYC: verified
Funding release: approve
Then:
Blueprint is marked approved
Grant moves to
milestonesMilestone 1 becomes
activeinitialFundingPaidAtis recordedApplicant is notified Blueprint approved
Blueprint rejected
Stage stays
blueprint, review = rejectedApplicant can resubmit a new plan (old milestones are replaced)
Applicant is notified Blueprint rejected
Phase 6 β Milestone steps on the grant
Milestones run in order. Only the current one is active. Later ones stay locked until the previous one is paid.
1. Grantee works on the active milestone
Only active or requires_changes can be submitted.
2. Grantee submits deliverables
Must include a valid deliverables URL (optional notes)
Status becomes
submittedSteward is notified
3. Steward or admin reviews
Approve
Status β
approvedGrantee is notified
Payment is not automatic
Request changes
Feedback text is required
Status β
requires_changesGrantee can resubmit
Grantee is notified
4. Admin marks it paid
Only after status is
approved(admins only)Optional Hiro explorer transaction URL (
https://explorer.hiro.so/txid/...)Status β
paidNext milestone (if any) becomes
activeGrantee and steward are notified
5. When every milestone is paid
The grant automatically moves to impact_report.
Phase 7 β Impact report and completion
Grantee submits an impact report URL (optional notes).
Steward or admin reviews:
Approve β grant stage
complete, grant status CompletedRequires changes β stays in impact report; grantee revises and resubmits
Quick reference
Form submitted
Application: Submitted
Stewards score
First steward score
Application: UnderReview
More stewards / admin
Admin rejects
Application: Rejected
Done
Admin approves full or adjusted
Application: Approved (offer waiting)
Applicant must accept or decline
Applicant declines
Application: OfferDeclined
Done β no grant
Applicant accepts
Application: OfferAccepted + Grant created at blueprint
Applicant submits blueprint
Blueprint approved
Grant: milestones, M1 active
Grantee delivers M1
Milestone submitted
Milestone: submitted
Steward/admin reviews
Milestone approved
Milestone: approved
Admin pays
Milestone paid
Milestone: paid, next one active
Grantee works next milestone
All milestones paid
Grant: impact_report
Grantee submits report
Impact report approved
Grant: complete
Done
Details that often confuse people
Steward score β decision. Admins decide funding.
Approve β funded. Accept Offer creates the grant.
Full amount still needs Accept. Same as a reduced offer.
Decline is final for that application.
Interview / submit_pitch exist in older frontend types. Live grants start at blueprint after accept.
Duplicate applications can be flagged; they cannot be scored.
Selected / public lists treat
ApprovedandOfferAcceptedas selected. Badge minting for βselectedβ also allowsApprovedeven if they have not accepted yet.
Application statuses
Submitted
Application received, no steward score yet
UnderReview
At least one steward has scored
Approved
Admin made an offer; waiting for applicant
Rejected
Admin rejected; process ended
OfferAccepted
Applicant accepted; grant exists
OfferDeclined
Applicant declined; no grant
Grant stages
blueprint
Grantee must submit (or resubmit) the plan and KYC
milestones
Delivering and reviewing milestones
impact_report
All milestones paid; report required
complete
Impact report approved
Source of truth in code
Submit application
packages/web/src/actions/funding/submit-degrant-application.ts
Steward score and admin decision
packages/web/src/actions/funding/degrants-application-lifecycle.ts
Accept / decline offer
respondToOffer in the same file
Blueprint, milestones, impact report
packages/web/src/actions/funding/degrants-lifecycle.ts
Status enums
packages/database/prisma/schema.prisma (DegrantApplicationStatus)
Last updated