Repair crypto token judge evidence export
This commit is contained in:
parent
6e89ea8acf
commit
35d3346042
5 changed files with 715 additions and 176 deletions
|
|
@ -680,7 +680,8 @@ class CryptoVentureService:
|
|||
score = min(100, 35 + strong_count * 4 + len(strong_roles) * 8 + len(structural_roles) * 13 + (12 if "slash" in text or "slashing" in text else 0) + (8 if "provider" in text else 0) - (35 if payment_only or weak_only else 0) - (35 if weak else 0) - int(utility_profile.get("SPECULATION_DEPENDENCE", 0) * 0.25))
|
||||
economic_model = getattr(proposal, "token_economic_model", None)
|
||||
model_payload = {"unit_of_service": economic_model.unit_of_service, "payment_asset": economic_model.payment_asset, "stake_requirement": economic_model.stake_requirement, "collateral_requirement": economic_model.collateral_requirement} if economic_model else {}
|
||||
judge_prompt = "CRYPTO_TOKEN_UTILITY_JUDGE V0.3.2B. Independent from ideation, onchain review, and token design. Challenge the token; do not merely summarize it. A native token need not be mathematically impossible to substitute, but benefits must outweigh costs. Evaluate security quality, attack economics, slashing effectiveness, provider skin-in-the-game, capital efficiency, protocol-specific risk pricing, permissionless supply formation, participant coordination, resource allocation, reputation portability, value capture, network effects, bootstrapping economics, governance, and composability versus USDC/ETH/external collateral/non-transferable attestations. Return JSON with token_classification TOKEN_ESSENTIAL/TOKEN_STRONGLY_JUSTIFIED/TOKEN_OPTIONAL/TOKEN_UNNECESSARY; score 0-100; utility_scores object; strong_structural_roles list; weak_roles list; counterfactual_analysis; external_collateral_counterfactual object/string; material_improvements_over_USDC_ETH non-empty list; native_asset_costs_and_risks non-empty list; argument_for_native_token non-empty string; argument_against_native_token non-empty string; final_rationale non-empty string; native_token_removed_breaks non-empty list; native_token_removed_degradation NONE/MINOR/MODERATE/MATERIAL/CRITICAL; native_token_removed_explanation non-empty string. If TOKEN_OPTIONAL, final_rationale must answer: Why is ETH/USDC/external collateral preferable despite the claimed material degradation? If TOKEN_ESSENTIAL or TOKEN_STRONGLY_JUSTIFIED, final_rationale must answer: What protocol-specific property cannot be reproduced economically enough with ETH/USDC/external collateral? Do not automatically promote for material degradation. Product/protocol/token/economic model: " + json.dumps({"pitch": proposal.pitch, "crypto": crypto, "roles": roles.roles, "utility_profile": utility_profile, "economic_model": model_payload}, default=str)
|
||||
judge_context = {"title": proposal.title, "product_thesis": crypto.get("product_thesis") or proposal.description, "protocol_thesis": crypto.get("protocol_thesis") or getattr(proposal, "protocol_thesis", None).protocol_thesis if hasattr(proposal, "protocol_thesis") else "", "token_thesis": crypto.get("token_thesis") or proposal.pitch.get("Token thesis", ""), "token_utility": utilities, "token_demand_loop": proposal.pitch.get("Token demand loop", []), "value_capture": crypto.get("value_capture", ""), "token_roles": roles.roles, "utility_profile": utility_profile, "economic_model": model_payload}
|
||||
judge_prompt = "CRYPTO_TOKEN_UTILITY_JUDGE V0.3.2B. Return strict JSON only. Required fields: token_classification TOKEN_ESSENTIAL/TOKEN_STRONGLY_JUSTIFIED/TOKEN_OPTIONAL/TOKEN_UNNECESSARY; score 0-100; utility_scores object; strong_structural_roles list; weak_roles list; counterfactual_analysis object including external_collateral_identical_security and stable_collateral_identical_security booleans; external_collateral_counterfactual non-empty object/string; material_improvements_over_USDC_ETH non-empty list; native_asset_costs_and_risks non-empty list; argument_for_native_token non-empty string; argument_against_native_token non-empty string; final_rationale non-empty string; native_token_removed_breaks non-empty list; native_token_removed_degradation NONE/MINOR/MODERATE/MATERIAL/CRITICAL; native_token_removed_explanation non-empty string. If TOKEN_OPTIONAL, final_rationale must answer why ETH/USDC/external collateral is preferable despite claimed material degradation. If TOKEN_ESSENTIAL or TOKEN_STRONGLY_JUSTIFIED, final_rationale must answer what protocol-specific property cannot be reproduced economically enough with ETH/USDC/external collateral. Do not automatically promote. Judge context: " + json.dumps(judge_context, default=str)
|
||||
sol_review = self._complete_token_utility_judge(judge_prompt, roles.roles)
|
||||
sol_structural_roles = [str(role) for role in self._as_list((sol_review or {}).get("strong_structural_roles")) if str(role) in STRUCTURAL_TOKEN_ROLES]
|
||||
sol_scores = (sol_review or {}).get("utility_scores", {}) if isinstance((sol_review or {}).get("utility_scores", {}), dict) else {}
|
||||
|
|
@ -723,7 +724,7 @@ class CryptoVentureService:
|
|||
score = min(score, 62)
|
||||
proposal.metadata = {**proposal.metadata, "crypto": {**crypto, "token_utility_judge_model": self.final_ic_model_hint, "token_utility_judge_used": bool(sol_review), "token_utility_profile": utility_profile, "strong_structural_roles": structural_roles, "strong_token_roles": strong_roles}}
|
||||
proposal.save(update_fields=["metadata", "updated_at"])
|
||||
return TokenUtilityAssessment.objects.update_or_create(proposal=proposal, defaults={"classification": classification, "token_necessity_score": score, "utility_categories": utilities, "fiat_or_database_substitution": str((sol_review or {}).get("counterfactual_analysis", "USDC/ETH/external collateral may preserve basic operation but must be compared against protocol-specific security and coordination improvements.")), "rationale": str((sol_review or {}).get("final_rationale") or (sol_review or {}).get("rationale") or "Token score derives from structural utility, not native payment currency alone."), "metadata": {"weak_utility_terms": INSUFFICIENT_TOKEN_UTILITIES, "sol_counterfactual_review": sol_review or {}, "sol_token_utility_judge": sol_review or {}, "independent_token_utility_judge": "CRYPTO_TOKEN_UTILITY_JUDGE", "argument_for_native_token": (sol_review or {}).get("argument_for_native_token", ""), "argument_against_native_token": (sol_review or {}).get("argument_against_native_token", ""), "utility_scores": utility_profile, "strong_structural_roles": structural_roles, "strong_token_roles": strong_roles, "weak_roles": (sol_review or {}).get("weak_roles", []), "counterfactual_analysis": (sol_review or {}).get("counterfactual_analysis", ""), "external_collateral_counterfactual": (sol_review or {}).get("external_collateral_counterfactual", {}), "material_improvements_over_USDC_ETH": self._as_list((sol_review or {}).get("material_improvements_over_USDC_ETH")), "native_asset_costs_and_risks": self._as_list((sol_review or {}).get("native_asset_costs_and_risks")), "required_roles": roles.required_roles, "payment_only_penalty": payment_only, "native_token_removed_breaks": self._as_list((sol_review or {}).get("native_token_removed_breaks")), "native_token_removed_degradation": degradation, "native_token_removed_explanation": (sol_review or {}).get("native_token_removed_explanation", "")}})[0]
|
||||
return TokenUtilityAssessment.objects.update_or_create(proposal=proposal, defaults={"classification": classification, "token_necessity_score": score, "utility_categories": utilities, "fiat_or_database_substitution": str((sol_review or {}).get("counterfactual_analysis", "USDC/ETH/external collateral may preserve basic operation but must be compared against protocol-specific security and coordination improvements.")), "rationale": str((sol_review or {}).get("final_rationale") or (sol_review or {}).get("rationale") or "Token score derives from structural utility, not native payment currency alone."), "metadata": {"weak_utility_terms": INSUFFICIENT_TOKEN_UTILITIES, "sol_counterfactual_review": sol_review or {}, "sol_token_utility_judge": sol_review or {}, "independent_token_utility_judge": "CRYPTO_TOKEN_UTILITY_JUDGE", "argument_for_native_token": (sol_review or {}).get("argument_for_native_token", ""), "argument_against_native_token": (sol_review or {}).get("argument_against_native_token", ""), "utility_scores": utility_profile, "strong_structural_roles": structural_roles, "strong_token_roles": strong_roles, "weak_roles": (sol_review or {}).get("weak_roles", []), "counterfactual_analysis": (sol_review or {}).get("counterfactual_analysis", ""), "external_collateral_counterfactual": (sol_review or {}).get("external_collateral_counterfactual", {}), "material_improvements_over_USDC_ETH": self._as_list((sol_review or {}).get("material_improvements_over_USDC_ETH")), "native_asset_costs_and_risks": self._as_list((sol_review or {}).get("native_asset_costs_and_risks")), "required_roles": roles.required_roles, "payment_only_penalty": payment_only, "native_token_removed_breaks": self._as_list((sol_review or {}).get("native_token_removed_breaks")), "native_token_removed_degradation": degradation, "native_token_removed_explanation": (sol_review or {}).get("native_token_removed_explanation", ""), "final_rationale": (sol_review or {}).get("final_rationale", "")}})[0]
|
||||
|
||||
def token_role_decomposition(self, proposal: CompanyProposal) -> TokenRoleDecomposition:
|
||||
text = self._design_text(proposal)
|
||||
|
|
@ -973,7 +974,7 @@ class CryptoVentureService:
|
|||
return labs
|
||||
|
||||
def crypto_score_row(self, proposal: CompanyProposal) -> dict[str, Any]:
|
||||
token = self.assess_token_necessity(proposal)
|
||||
token = getattr(proposal, "token_utility_assessment", None) or self.assess_token_necessity(proposal)
|
||||
onchain = self.onchain_assessment(proposal)
|
||||
value = self.value_capture_assessment(proposal)
|
||||
policy = self.regulatory_policy(proposal)
|
||||
|
|
@ -1042,7 +1043,8 @@ class CryptoVentureService:
|
|||
return CryptoICDecisionType.PROTOCOL_VALIDATE
|
||||
|
||||
def _sol_final_ic_adjustment(self, row: dict[str, Any]) -> dict[str, Any]:
|
||||
review = self._sol_json("Final Crypto IC review V0.3.1. Consider problem thesis, protocol thesis, token utility profile, independent token judge, Token Red Team, Guard assessment, token economic model, simulation, primary-source evidence, autonomy analysis, pre-token business, and uncertainty. Return JSON with optional score_adjustment -20..20, decision from TESTNET_PILOT, PROTOCOL_VALIDATE, REVISE_TOKEN_MODEL, ASSISTED_CRYPTO_HIGH_POTENTIAL, WATCHLIST, ROUTE_TO_VENTURE_STUDIO, REJECT_TOKEN_NOT_NEEDED, REJECT_TOKEN_UTILITY_WEAK, REJECT_ONCHAIN_NOT_NEEDED, REJECT_SECURITY_MODEL, REJECT_ECONOMIC_MODEL, REJECT_AUTONOMY, REJECT_NO_DEMAND, and rationale. Do not promote weak token ideas or fill finalist slots. Row: " + json.dumps(row, default=str))
|
||||
compact_row = {key: row.get(key) for key in ["company", "product_thesis", "protocol_thesis", "token_thesis", "why_token", "token_necessity_classification", "token_utility_scores", "strong_token_roles", "strong_structural_roles", "argument_for_native_token", "argument_against_native_token", "external_collateral_counterfactual", "native_token_removed_degradation", "native_token_removed_explanation", "token_red_team_flags", "component_scores", "crypto_ic_score", "crypto_ic_decision"]}
|
||||
review = self._sol_json("Final Crypto IC review V0.3.2B. Return JSON only with score_adjustment -20..20, decision from TESTNET_PILOT, PROTOCOL_VALIDATE, REVISE_TOKEN_MODEL, ASSISTED_CRYPTO_HIGH_POTENTIAL, WATCHLIST, ROUTE_TO_VENTURE_STUDIO, REJECT_TOKEN_NOT_NEEDED, REJECT_TOKEN_UTILITY_WEAK, REJECT_ONCHAIN_NOT_NEEDED, REJECT_SECURITY_MODEL, REJECT_ECONOMIC_MODEL, REJECT_AUTONOMY, REJECT_NO_DEMAND, and rationale. Consider the repaired token utility judge evidence, red-team flags, and component scores. Do not promote weak token ideas or fill finalist slots. Row: " + json.dumps(compact_row, default=str))
|
||||
if not review:
|
||||
return row
|
||||
adjustment = max(-20, min(20, float(review.get("score_adjustment", 0))))
|
||||
|
|
@ -1107,6 +1109,7 @@ class CryptoVentureService:
|
|||
last_missing: list[str] = []
|
||||
for attempt in range(attempts):
|
||||
review = self._sol_json(prompt + retry_hint)
|
||||
review = self._normalize_token_judge_response(review)
|
||||
missing = self._token_judge_missing_fields(review, roles)
|
||||
if not missing:
|
||||
return review
|
||||
|
|
@ -1114,6 +1117,20 @@ class CryptoVentureService:
|
|||
retry_hint = "\nPrevious token utility judge response was rejected because these required fields or rationale checks were empty/incomplete: " + json.dumps(missing) + ". Return a complete JSON object only."
|
||||
raise ValueError("Incomplete Sol token utility judge response: " + ", ".join(last_missing))
|
||||
|
||||
def _normalize_token_judge_response(self, review: dict[str, Any]) -> dict[str, Any]:
|
||||
if not isinstance(review, dict):
|
||||
return {}
|
||||
normalized = dict(review)
|
||||
counterfactual = normalized.get("counterfactual_analysis")
|
||||
if isinstance(counterfactual, dict) and self._empty_judge_value(normalized.get("external_collateral_counterfactual")):
|
||||
nested = counterfactual.get("external_collateral_counterfactual")
|
||||
if not self._empty_judge_value(nested):
|
||||
normalized["external_collateral_counterfactual"] = nested
|
||||
scores = normalized.get("utility_scores")
|
||||
if isinstance(scores, dict):
|
||||
normalized["utility_scores"] = {str(key).upper(): value for key, value in scores.items()}
|
||||
return normalized
|
||||
|
||||
def _token_judge_missing_fields(self, review: dict[str, Any], roles: dict[str, Any]) -> list[str]:
|
||||
if not review:
|
||||
return ["judge_response"]
|
||||
|
|
|
|||
|
|
@ -134,6 +134,17 @@ class Command(BaseCommand):
|
|||
lines.extend(f"- {row['company']}: `{row['crypto_ic_decision']}`" for row in top_3)
|
||||
else:
|
||||
lines.append("Fewer than 3 qualified; weak token ideas were not promoted.")
|
||||
before_after = payload.get("v032b_before_after_classifications", [])
|
||||
if before_after:
|
||||
lines.extend(["", "## V0.3.2B Before/After", ""])
|
||||
for row in before_after:
|
||||
lines.extend(
|
||||
[
|
||||
f"- {row.get('company')}: `{row.get('before')}` -> `{row.get('after')}`. Score: `{row.get('score')}`. Final IC: `{row.get('final_ic_decision')}` at `{row.get('final_ic_score')}`.",
|
||||
f" Required field gaps: {self.inline(row.get('required_field_gaps', []))}",
|
||||
f" Final rationale: {row.get('final_rationale', '')}",
|
||||
]
|
||||
)
|
||||
routed = payload.get("routed_to_saas", [])
|
||||
lines.extend(["", "## Routed To SaaS", ""])
|
||||
if routed:
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,11 +1,11 @@
|
|||
# CRYPTO VENTURE COHORT V0.3.1 CORRECTED
|
||||
# CRYPTO VENTURE COHORT V0.3.2B TOKEN JUDGE EVIDENCE REPAIR
|
||||
|
||||
Cohort ID: `CPV031-20260816215626-66d636b2`
|
||||
GraphRun: `10`
|
||||
Raw protocols generated: `20`
|
||||
Raw Sol theses: `20`. Onchain passed: `11`. Onchain rejected: `9`.
|
||||
Token design attempts: `11`. Token design skipped: `9`.
|
||||
Token unnecessary: `5`. Token optional/routed SaaS: `6`. Token strongly justified: `0`. Token essential: `0`. Duplicates: `0`.
|
||||
Token unnecessary: `1`. Token optional/routed SaaS: `4`. Token strongly justified: `1`. Token essential: `0`. Duplicates: `0`.
|
||||
Crypto survivors: `0`. Autonomous crypto survivors: `0`. Assisted high-potential: `0`. Security-blocked: `0`. Finalists: `0`.
|
||||
Generation attempts: `20`
|
||||
|
||||
|
|
@ -41,10 +41,10 @@ Generation attempts: `20`
|
|||
"onchain_passed": 11,
|
||||
"crypto_survivors_after_onchain": 11,
|
||||
"token_design_skipped_due_to_onchain_rejection": 9,
|
||||
"token_unnecessary_rejections": 5,
|
||||
"token_optional_route_to_saas": 6,
|
||||
"token_unnecessary_rejections": 1,
|
||||
"token_optional_route_to_saas": 4,
|
||||
"token_essential": 0,
|
||||
"token_strongly_justified": 0,
|
||||
"token_strongly_justified": 1,
|
||||
"serious_crypto_survivors": 0,
|
||||
"crypto_survivors": 0,
|
||||
"token_design_attempts": 11,
|
||||
|
|
@ -65,7 +65,7 @@ Generation attempts: `20`
|
|||
"protocol_security_gate_blocked": 0,
|
||||
"protocol_security_gate_passed": 0,
|
||||
"token_red_team_failures": {
|
||||
"TOKEN_NOT_REQUIRED": 6,
|
||||
"TOKEN_NOT_REQUIRED": 5,
|
||||
"YIELD_DEPENDENCY": 1,
|
||||
"SLASHING_DEPENDS_ON_HUMAN_JUDGMENT": 1
|
||||
},
|
||||
|
|
@ -92,6 +92,71 @@ Generation attempts: `20`
|
|||
"TOKEN_NOT_REQUIRED": 6,
|
||||
"YIELD_DEPENDENCY": 1,
|
||||
"SLASHING_DEPENDS_ON_HUMAN_JUDGMENT": 1
|
||||
},
|
||||
"v032b_existing_six_token_judge": 6,
|
||||
"v032b_existing_six_red_team": 6,
|
||||
"v032b_existing_six_final_ic": 6,
|
||||
"v032b_before_after_classifications": [
|
||||
{
|
||||
"company": "Agent Passport Clearinghouse",
|
||||
"before": "TOKEN_OPTIONAL",
|
||||
"after": "TOKEN_UNNECESSARY",
|
||||
"score": 18.0,
|
||||
"required_field_gaps": [],
|
||||
"final_ic_decision": "REJECT_TOKEN_NOT_NEEDED",
|
||||
"final_ic_score": 62.3
|
||||
},
|
||||
{
|
||||
"company": "PatchBond Network",
|
||||
"before": "TOKEN_OPTIONAL",
|
||||
"after": "TOKEN_OPTIONAL",
|
||||
"score": 48.0,
|
||||
"required_field_gaps": [],
|
||||
"final_ic_decision": "REJECT_TOKEN_NOT_NEEDED",
|
||||
"final_ic_score": 66.4
|
||||
},
|
||||
{
|
||||
"company": "ProofGrid Compute Attestation Network",
|
||||
"before": "TOKEN_OPTIONAL",
|
||||
"after": "TOKEN_OPTIONAL",
|
||||
"score": 42.0,
|
||||
"required_field_gaps": [],
|
||||
"final_ic_decision": "REJECT_TOKEN_UTILITY_WEAK",
|
||||
"final_ic_score": 63.6
|
||||
},
|
||||
{
|
||||
"company": "ProofBond",
|
||||
"before": "TOKEN_OPTIONAL",
|
||||
"after": "TOKEN_OPTIONAL",
|
||||
"score": 54.0,
|
||||
"required_field_gaps": [],
|
||||
"final_ic_decision": "REJECT_TOKEN_UTILITY_WEAK",
|
||||
"final_ic_score": 64.3
|
||||
},
|
||||
{
|
||||
"company": "Compute Clearance Network",
|
||||
"before": "TOKEN_OPTIONAL",
|
||||
"after": "TOKEN_STRONGLY_JUSTIFIED",
|
||||
"score": 78.0,
|
||||
"required_field_gaps": [],
|
||||
"final_ic_decision": "PROTOCOL_VALIDATE",
|
||||
"final_ic_score": 79.7
|
||||
},
|
||||
{
|
||||
"company": "ProofGrid Compute Escrow",
|
||||
"before": "TOKEN_OPTIONAL",
|
||||
"after": "TOKEN_OPTIONAL",
|
||||
"score": 58.0,
|
||||
"required_field_gaps": [],
|
||||
"final_ic_decision": "REVISE_TOKEN_MODEL",
|
||||
"final_ic_score": 67.9
|
||||
}
|
||||
],
|
||||
"v032b_required_field_gaps": 0,
|
||||
"v032b_token_red_team_failures": {
|
||||
"TOKEN_NOT_REQUIRED": 5,
|
||||
"YIELD_DEPENDENCY": 1,
|
||||
"SLASHING_DEPENDS_ON_HUMAN_JUDGMENT": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
@ -116,20 +181,37 @@ Generation attempts: `20`
|
|||
|
||||
Fewer than 3 qualified; weak token ideas were not promoted.
|
||||
|
||||
## V0.3.2B Before/After
|
||||
|
||||
- Agent Passport Clearinghouse: `TOKEN_OPTIONAL` -> `TOKEN_UNNECESSARY`. Score: `18.0`. Final IC: `REJECT_TOKEN_NOT_NEEDED` at `62.3`.
|
||||
Required field gaps: none
|
||||
Final rationale: The protocol has real collateral and slashing needs, but those needs are not native-token-specific. ETH, USDC, tokenized cash instruments, or insurance-backed collateral can economically reproduce the security model while improving price stability, liquidity, and institutional acceptance. The native token mainly adds captive value capture and bootstrapping optionality, not an essential protocol-specific property.
|
||||
- PatchBond Network: `TOKEN_OPTIONAL` -> `TOKEN_OPTIONAL`. Score: `48.0`. Final IC: `REJECT_TOKEN_NOT_NEEDED` at `66.4`.
|
||||
Required field gaps: none
|
||||
Final rationale: PatchBond has real collateral and slashing needs, but the protocol-specific property is not strong enough to make a native token necessary. The core security function is an enforceable vendor bond with independent assessment and predictable payout conditions, which USDC, ETH, fiat escrow, bank guarantees, or insurance collateral can reproduce more credibly for enterprise procurement. Although removing the token moderately degrades bootstrapping, native provider admission, and treasury value capture, external collateral is preferable because buyers value payout certainty, liquidity, accounting simplicity, and legal enforceability more than native-token reflexive security.
|
||||
- ProofGrid Compute Attestation Network: `TOKEN_OPTIONAL` -> `TOKEN_OPTIONAL`. Score: `42.0`. Final IC: `REJECT_TOKEN_UTILITY_WEAK` at `63.6`.
|
||||
Required field gaps: none
|
||||
Final rationale: TOKEN_OPTIONAL because the native token may help bootstrap and coordinate a portable attestation network, but the core security model does not require it. ETH, USDC, or approved external collateral is preferable because slashing needs predictable, liquid, widely accepted value, while the protocol-specific properties such as machine identity, verifier reputation, routing eligibility, and dispute records can be represented as protocol state backed by external bonds. Any degradation from removing the token is mainly loss of endogenous value capture and bootstrap alignment, not loss of the attestation or slashing function itself.
|
||||
- ProofBond: `TOKEN_OPTIONAL` -> `TOKEN_OPTIONAL`. Score: `54.0`. Final IC: `REJECT_TOKEN_UTILITY_WEAK` at `64.3`.
|
||||
Required field gaps: none
|
||||
Final rationale: ProofBond has real collateral and slashing needs, but the protocol-specific property claimed for the native token can be reproduced economically enough with ETH, USDC, or other external collateral. Portable machine reputation, verifier staking, dispute slashing, provider admission, and routing priority can all be implemented using external collateral plus non-transferable machine credentials and contract-enforced penalties. Although removing the native token causes moderate degradation in endogenous alignment, fee capture, and bootstrapping flexibility, ETH and especially USDC are preferable for the core guarantee because they are more liquid, more legible to buyers, less volatile, and provide clearer compensation value when claims fail.
|
||||
- Compute Clearance Network: `TOKEN_OPTIONAL` -> `TOKEN_STRONGLY_JUSTIFIED`. Score: `78.0`. Final IC: `PROTOCOL_VALIDATE` at `79.7`.
|
||||
Required field gaps: none
|
||||
Final rationale: The token is strongly justified but not essential. The protocol-specific property that cannot be reproduced economically enough with ETH, USDC, or generic external collateral is the combination of persistent bonded machine identity, reputation-linked earning capacity, risk-proportional native lockup, and slashing that recapitalizes a protocol-native security budget. External collateral can reproduce financial penalties, but it does not create the same endogenous accountability layer where compute capacity, routing, verification, and machine reputation are all secured by stake whose value and opportunity cost are tied to the network itself.
|
||||
- ProofGrid Compute Escrow: `TOKEN_OPTIONAL` -> `TOKEN_OPTIONAL`. Score: `58.0`. Final IC: `REVISE_TOKEN_MODEL` at `67.9`.
|
||||
Required field gaps: none
|
||||
Final rationale: TOKEN_OPTIONAL because ProofGrid has real token-shaped utility, but the protocol-specific property is not impossible to reproduce economically enough with ETH, USDC, or external collateral. The essential functions are slashable bonds, verifier accountability, machine reputation, routing priority, and security-budget funding; these can be implemented with stablecoin or ETH collateral while keeping reputation and machine identity native to the protocol database or contracts. A native token may moderately improve alignment, bootstrapping, and identity stickiness, but USDC or ETH is preferable because it gives buyers predictable collateral value, deeper liquidity, simpler compensation, and lower reflexive security risk despite some degradation in network-specific alignment.
|
||||
|
||||
## Routed To SaaS
|
||||
|
||||
- Agent Passport Clearinghouse: `TOKEN_OPTIONAL`
|
||||
Corrected rejudge found native token utility insufficient after removing injected/speculative language.
|
||||
- PatchBond Network: `TOKEN_OPTIONAL`
|
||||
Corrected rejudge found native token utility insufficient after removing injected/speculative language.
|
||||
V0.3.2B strict token judge evidence repair; native token not sufficiently justified versus ETH/USDC/external collateral.
|
||||
- ProofGrid Compute Attestation Network: `TOKEN_OPTIONAL`
|
||||
Corrected rejudge found native token utility insufficient after removing injected/speculative language.
|
||||
V0.3.2B strict token judge evidence repair; native token not sufficiently justified versus ETH/USDC/external collateral.
|
||||
- ProofBond: `TOKEN_OPTIONAL`
|
||||
Corrected rejudge found native token utility insufficient after removing injected/speculative language.
|
||||
- Compute Clearance Network: `TOKEN_OPTIONAL`
|
||||
Corrected rejudge found native token utility insufficient after removing injected/speculative language.
|
||||
V0.3.2B strict token judge evidence repair; native token not sufficiently justified versus ETH/USDC/external collateral.
|
||||
- ProofGrid Compute Escrow: `TOKEN_OPTIONAL`
|
||||
Corrected rejudge found native token utility insufficient after removing injected/speculative language.
|
||||
V0.3.2B strict token judge evidence repair; native token not sufficiently justified versus ETH/USDC/external collateral.
|
||||
|
||||
## V0.2 Comparison
|
||||
|
||||
|
|
@ -157,6 +239,14 @@ Fewer than 3 qualified; weak token ideas were not promoted.
|
|||
"token_optional": 6,
|
||||
"crypto_survivors": 0,
|
||||
"finalists": 0
|
||||
},
|
||||
"v032b": {
|
||||
"token_optional": 4,
|
||||
"token_unnecessary": 1,
|
||||
"token_strongly_justified": 1,
|
||||
"token_essential": 0,
|
||||
"crypto_survivors": 0,
|
||||
"finalists": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
@ -164,7 +254,7 @@ Fewer than 3 qualified; weak token ideas were not promoted.
|
|||
## Token Red Team Failures
|
||||
|
||||
{
|
||||
"TOKEN_NOT_REQUIRED": 6,
|
||||
"TOKEN_NOT_REQUIRED": 5,
|
||||
"YIELD_DEPENDENCY": 1,
|
||||
"SLASHING_DEPENDS_ON_HUMAN_JUDGMENT": 1
|
||||
}
|
||||
|
|
@ -172,8 +262,7 @@ Fewer than 3 qualified; weak token ideas were not promoted.
|
|||
## Research Health
|
||||
|
||||
{
|
||||
"sources_accepted": 85,
|
||||
"sources_rejected": 193
|
||||
"broad_research_redone": false
|
||||
}
|
||||
|
||||
## Token Utility Distribution
|
||||
|
|
|
|||
|
|
@ -216,7 +216,7 @@ def test_v03_independent_counterfactual_native_removed_fields() -> None:
|
|||
assert token.metadata["independent_token_utility_judge"] == "CRYPTO_TOKEN_UTILITY_JUDGE"
|
||||
assert token.metadata["native_token_removed_degradation"] == "MATERIAL"
|
||||
assert token.metadata["argument_for_native_token"]
|
||||
for field in ["argument_for_native_token", "argument_against_native_token", "external_collateral_counterfactual", "native_token_removed_breaks", "native_token_removed_explanation", "material_improvements_over_USDC_ETH", "native_asset_costs_and_risks"]:
|
||||
for field in ["argument_for_native_token", "argument_against_native_token", "external_collateral_counterfactual", "native_token_removed_breaks", "native_token_removed_explanation", "material_improvements_over_USDC_ETH", "native_asset_costs_and_risks", "final_rationale"]:
|
||||
assert token.metadata[field]
|
||||
assert token.rationale
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue