Contributor Blacklist Manage
Add or remove contributors from a project's blacklist
Project Owner Contributor Blacklist Manage
Add or remove contributors from a project's blacklist by updating the project state UTxO.
API Endpoint
POST /v2/tx/project/owner/contributor-blacklist/manageCost Summary
| Cost Type | Amount | Notes |
|---|---|---|
| Transaction Fee | ~0.34 ADA | Network fee |
| Protocol Fee | None | No protocol fee for blacklist management |
| Total Wallet Delta | ~0.34 ADA | Transaction fee only |
Request Body
{
"alias": "james",
"project_id": "1454468edf80c69f84314b689f56e2fc25aca385aecb037a912a5aba",
"aliases_to_add": ["user1"],
"aliases_to_remove": []
}| Field | Type | Required | Description |
|---|---|---|---|
alias | string | Yes | Owner's access token alias |
project_id | string | Yes | Project NFT policy ID (56 char hex) |
aliases_to_add | string[] | Yes | Aliases to blacklist (empty = none) |
aliases_to_remove | string[] | Yes | Aliases to un-blacklist (empty = none) |
Transaction Pattern
Spend and Recreate with Observer — No minting. Consumes and recreates UTxOs with updated datum. An observer validates the operation via withdrawal.
┌─────────────────────────────────────────────────────────────────┐
│ CONTRIBUTOR BLACKLIST MANAGE TRANSACTION │
├─────────────────────────────────────────────────────────────────┤
│ │
│ INPUTS OUTPUTS │
│ ────── ─────── │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ LocalStateNFT │───────────▶│ LocalStateNFT │ │
│ │ (project NFT) │ SPEND │ (unchanged) │ │
│ └─────────────────┘ └─────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Project State │───────────▶│ Project State │ │
│ │ (blacklist) │ SPEND │ (UPDATED list) │ │
│ └─────────────────┘ └─────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Wallet │───────────▶│ User Wallet │ │
│ │ (u-token + ADA) │ │ (u-token + │ │
│ └─────────────────┘ │ change) │ │
│ └─────────────────┘ │
│ OBSERVER │
│ ──────── │
│ project-state-observer (via withdrawal, 0 ADA) │
│ │
│ NO MINTING │
│ NO PROTOCOL FEE │
│ │
└─────────────────────────────────────────────────────────────────┘Inputs
| Input | Type | Validator | Description |
|---|---|---|---|
| LocalStateNFT | Script | local-state-nft-validator | Project NFT (spent with projectId redeemer) |
| Project State | Script | project-state-validator | Project state UTxO (spent to update blacklist) |
| Access Token | Wallet | - | Owner's u-token for authorization |
| Wallet UTxOs | Wallet | - | ADA for fees |
Outputs (3)
| Output | Validator | Value | Description |
|---|---|---|---|
| LocalStateNFT | local-state-nft-validator | ~1.24 ADA + NFT | Recreated unchanged |
| Project State | project-state-validator | ~1.47 ADA + token | Updated blacklist |
| User Wallet | wallet | u-token + change | Access token returned |
Datum Changes
The project state datum is updated:
Before:
Constructor 0:
├── projectId: <28 bytes hex>
├── blacklist: []
└── metadata: ""After:
Constructor 0:
├── projectId: <28 bytes hex>
├── blacklist: ["user1"]
└── metadata: ""Redeemers
| Script | Redeemer |
|---|---|
| local-state-nft-validator | { bytes: "<projectId>" } |
| project-state-validator | { constructor: 0, fields: [] } (empty — action determined by observer) |
Observer
The project-state-observer validates the blacklist update via a withdrawal:
| Observer | Redeemer | Amount |
|---|---|---|
| project-state-observer | { constructor: 1, fields: [projectId, stakeCredHash] } | 0 ADA |
Reference Inputs
| Ref | Description |
|---|---|
| Script reference for project-state-observer | Observer validation script |
| Script reference for local-state-nft-validator | NFT validation script |
Key Notes
- No protocol fee — Unlike project creation and manager management, blacklist updates are free (transaction fee only)
- Uses an observer for validation (unlike managers manage which uses direct spend)
- Blacklisted contributors cannot accept tasks, submit work, or claim rewards in this project
- Owner is identified by their access token
See Also
- Managers Manage — Add/remove project managers
- Task Commit — How contributors join projects