Logo

partner-chain-gov

UnofficialPreliminary, reverse-engineered version published by the tx3 team for testing and exploration. It is not endorsed by the original protocol authors. Do not use in mainnet. • v0.1.0

About this Protocol

Cardano L1 transactions for governance operations of a Cardano partner chain

Parties

The participants involved in this protocol's transactions.

permissioned_candidates_validator_addressScript address controlling pre-approved validator candidate lists
d_parameter_validator_addressScript address controlling candidate limit parameters (D-parameters)
reserve_validator_addressScript address managing token reserves and distribution mechanisms
illiquid_circulation_supply_validator_addressScript address controlling illiquid token supply and vesting operations
version_oracle_validator_addressScript address managing governance tokens and authority verification
payment_addressPrimary funding address for transaction fees and change collection
candidate_addressSPO address — used by stake pool operators to register or update their candidate status
committee_candidate_validator_addressScript address managing registered validator candidate registrations
governed_map_validator_addressScript address controlling governed key-value storage with governance oversight

Environment

Configuration values required to execute this protocol's transactions.

candidate_keyPrivate key for candidate address operations/$defs/Bytes
committee_candidate_validator_hashHash of committee candidates validator script/$defs/Bytes
committee_candidate_validator_scriptValidator script controlling candidate registrations/$defs/Bytes
d_parameter_asset_nameAsset name for D-parameter tokens/$defs/Bytes
d_parameter_policy_hashPolicy ID for D-parameter authentication tokens/$defs/Bytes
d_parameter_policy_scriptPolicy script for D-parameter token operations/$defs/Bytes
d_parameter_script_idNumeric identifier for D-parameter operationsinteger
d_parameter_validator_hashHash of D-parameter validator script/$defs/Bytes
d_parameter_validator_scriptValidator script controlling D-parameter UTxOs/$defs/Bytes
governance_asset_nameToken name for governance tokens (typically "Version oracle")/$defs/Bytes
governance_policy_hashHash of the governance policy for token validation/$defs/Bytes
governance_policy_scriptMulti-signature governance policy script bytecode/$defs/Bytes
governance_policy_utxorefUTxO reference containing governance policy script/$defs/UtxoRef
governance_utxorefCurrent governance UTxO reference for authority validation/$defs/UtxoRef
governed_map_asset_nameAsset name for governed map entry tokens/$defs/Bytes
governed_map_policy_hashPolicy ID for minting/burning map entry tokens/$defs/Bytes
governed_map_policy_scriptPolicy script for governed map token operations/$defs/Bytes
governed_map_script_idNumeric identifier for governed map operations in redeemersinteger
governed_map_utxorefReference UTxO for governed map operations/$defs/UtxoRef
governed_map_validator_hashHash of the governed map validator script/$defs/Bytes
governed_map_validator_scriptValidator script controlling map entry UTxOs/$defs/Bytes
governed_map_validator_utxorefReference UTxO for governed map validator script/$defs/UtxoRef
illiquid_circulation_supply_authority_token_asset_nameAsset name for ICS authority tokens/$defs/Bytes
illiquid_circulation_supply_authority_token_policy_hashPolicy ID for ICS authority tokens/$defs/Bytes
illiquid_circulation_supply_authority_token_policy_scriptPolicy script for ICS authority/$defs/Bytes
illiquid_circulation_supply_authority_token_policy_version_utxoVersion reference for ICS authority policy/$defs/UtxoRef
illiquid_circulation_supply_validator_hashHash of ICS validator script/$defs/Bytes
illiquid_circulation_supply_validator_scriptValidator script for ICS operations/$defs/Bytes
illiquid_circulation_supply_validator_version_utxoVersion reference for ICS validator/$defs/UtxoRef
initial_incentiveInitial incentive amount for reward distributioninteger
multi_sig_policy_hashCryptographic hash of the multi-signature policy for verification/$defs/Bytes
payment_keyPrivate key for payment address transaction signing/$defs/Bytes
permissioned_candidates_asset_nameAsset name for permissioned candidates tokens/$defs/Bytes
permissioned_candidates_policy_hashPolicy ID for permissioned candidates tokens/$defs/Bytes
permissioned_candidates_policy_scriptPolicy script for candidate list operations/$defs/Bytes
permissioned_candidates_validator_hashHash of permissioned candidates validator/$defs/Bytes
permissioned_candidates_validator_scriptValidator script controlling candidate list/$defs/Bytes
reserve_auth_asset_nameAsset name for reserve authorization tokens/$defs/Bytes
reserve_auth_policy_hashPolicy ID for reserve authorization tokens/$defs/Bytes
reserve_auth_policy_scriptPolicy script for reserve authentication/$defs/Bytes
reserve_auth_policy_version_utxoVersion reference for reserve auth policy/$defs/UtxoRef
reserve_validator_hashHash of reserve management validator script/$defs/Bytes
reserve_validator_scriptValidator script controlling reserve UTxOs/$defs/Bytes
reserve_validator_version_utxoVersion reference for reserve validator/$defs/UtxoRef
reward_token_asset_nameAsset name of the reward token for distribution/$defs/Bytes
reward_token_policy_idPolicy ID of the reward token being managed/$defs/Bytes
version_oracle_asset_nameAsset name for version oracle governance tokens/$defs/Bytes
version_oracle_policy_hashPolicy ID for minting/burning version oracle tokens/$defs/Bytes
version_oracle_policy_scriptScript bytecode for version oracle token policy/$defs/Bytes
version_oracle_validator_hashHash of the version oracle validator script/$defs/Bytes
version_oracle_validator_scriptValidator script controlling governance UTxOs/$defs/Bytes
vesting_function_hashCryptographic hash of the vesting calculation function/$defs/Bytes

Transactions

The transactions defined in this protocol, with their parameters, inputs, and outputs.

deposit_to_reserve

Deposit Additional Tokens to Existing Reserve ============================================= Adds more reward tokens to an operational reserve system for future distribution. This enables ongoing funding of validator rewards and token distribution mechanisms. Transaction Flow: 1. References multiple script versions for validation and authorization 2. Mints governance token to prove authorization for reserve operations 3. Consumes existing reserve UTxO containing current token balance 4. Creates updated reserve UTxO with additional deposited tokens 5. Returns governance token and change to the payment address Security Requirements: - Must have valid governance authorization for reserve modifications - Reserve auth token must be present in the existing reserve UTxO - Deposit amount must be available in the source input - Governance token minting proves authorization for this operation Economic Impact: - Increases total token pool available for validator rewards - Extends the operational lifetime of the reserve system - Enables flexible reserve funding based on Partner Chain needs - Maintains reserve settings while increasing token balance Parameters: - deposit_amount: Amount of reward tokens to add to the reserve - existing_reserve_utxo: Reference to the current reserve UTxO Post-Conditions: - Reserve contains additional tokens available for distribution - Reserve configuration and vesting parameters remain unchanged - Enhanced funding supports extended validator reward operations

Diagram

deposit_to_reservedeposit_amountexisting_reserve_utxogovernance_asset_namegovernance_policy_hashgovernance_policy_scriptgovernance_utxorefilliquid_circulation_supply_validator_version_utxopayment_addresspayment_keyreserve_auth_asset_namereserve_auth_policy_hashreserve_auth_policy_version_utxoreserve_validator_addressreserve_validator_scriptreserve_validator_version_utxoreward_token_asset_namereward_token_policy_id payment_address reserve_validator_address payment_address reserve_validator_address source existing_reserve output 2 output 1

Parameters

deposit_amountIntAmount of reward tokens to deposit into the reserve
existing_reserve_utxoUtxoRefReference to the existing reserve UTxO to enhance
governance_asset_nameBytes
governance_policy_hashBytes
governance_policy_scriptBytes
governance_utxorefUtxoRef
illiquid_circulation_supply_validator_version_utxoUtxoRef
payment_addressAddress
payment_keyBytes
reserve_auth_asset_nameBytes
reserve_auth_policy_hashBytes
reserve_auth_policy_version_utxoUtxoRef
reserve_validator_addressAddress
reserve_validator_scriptBytes
reserve_validator_version_utxoUtxoRef
reward_token_asset_nameBytes
reward_token_policy_idBytes

Inputs

sourcepayment_addresswallet
existing_reservereserve_validator_addressscript

Outputs

reserve_validator_addressnono
payment_addressnono

release_from_reserve

Release Tokens from Reserve According to Vesting Schedule ======================================================== Releases reward tokens from the reserve to illiquid circulation supply based on mathematical vesting function validation. This implements controlled token distribution. Transaction Flow: 1. References multiple validator scripts for comprehensive validation 2. Consumes both reserve UTxO and ICS (Illiquid Circulation Supply) UTxO 3. Mints V-function tokens equal to cumulative transfers for mathematical validation 4. Creates updated reserve UTxO with reduced token balance 5. Creates updated ICS UTxO with transferred tokens and ReserveTransfer datum 6. Uses validity interval for temporal validation of release timing Security Requirements: - Reserve auth token must authorize the token release operation - ICS authority token must control the receiving illiquid supply system - V-function validation must prove the release follows vesting mathematics - Validity interval ensures time-based release constraints are respected Vesting Mechanism: - V-function tokens validate cumulative total against mathematical curve - Release amount must comply with predefined vesting schedule - Temporal validation ensures releases happen at appropriate intervals - Mathematical proof prevents premature or excessive token releases Economic Controls: - Implements controlled token inflation through vesting - Prevents arbitrary token releases outside vesting parameters - Maintains economic security through mathematical validation - Supports sustainable validator reward distribution Parameters: - release_amount: Amount of tokens to release from reserve - existing_reserve_utxo: Current reserve UTxO containing tokens - existing_ics_utxo: Current ICS UTxO to receive tokens - v_function_reference_utxo: UTxO containing vesting function script - v_function_policy_hash: Policy hash for V-function token validation - cumulative_total_transfer: Total amount transferred including this release - latest_slot: Current slot for validity start interval validation Post-Conditions: - Tokens are released to illiquid circulation supply according to vesting - Reserve balance is reduced by the exact release amount - Mathematical proof validates compliance with vesting function - Release timing is validated against blockchain slot constraints

Diagram

release_from_reservecumulative_total_transferexisting_ics_utxoexisting_reserve_utxoilliquid_circulation_supply_authority_token_asset_nameilliquid_circulation_supply_authority_token_policy_hashilliquid_circulation_supply_authority_token_policy_version_utxoilliquid_circulation_supply_validator_addressilliquid_circulation_supply_validator_scriptilliquid_circulation_supply_validator_version_utxolatest_slotpayment_addresspayment_keyrelease_amountreserve_auth_asset_namereserve_auth_policy_hashreserve_auth_policy_version_utxoreserve_validator_addressreserve_validator_scriptreserve_validator_version_utxoreward_token_asset_namereward_token_policy_idv_function_policy_hashv_function_reference_utxo illiquid_circulation_supply_validator_address payment_address reserve_validator_address illiquid_circulation_supply_validator_address payment_address reserve_validator_address existing_ics source existing_reserve output 2 output 3 output 1

Parameters

cumulative_total_transferIntTotal cumulative amount transferred (including this release)
existing_ics_utxoUtxoRefReference to the current ICS UTxO
existing_reserve_utxoUtxoRefReference to the current reserve UTxO
illiquid_circulation_supply_authority_token_asset_nameBytes
illiquid_circulation_supply_authority_token_policy_hashBytes
illiquid_circulation_supply_authority_token_policy_version_utxoUtxoRef
illiquid_circulation_supply_validator_addressAddress
illiquid_circulation_supply_validator_scriptBytes
illiquid_circulation_supply_validator_version_utxoUtxoRef
latest_slotIntCurrent blockchain slot for validity interval validation
payment_addressAddress
payment_keyBytes
release_amountIntAmount of reward tokens to release from reserve
reserve_auth_asset_nameBytes
reserve_auth_policy_hashBytes
reserve_auth_policy_version_utxoUtxoRef
reserve_validator_addressAddress
reserve_validator_scriptBytes
reserve_validator_version_utxoUtxoRef
reward_token_asset_nameBytes
reward_token_policy_idBytes
v_function_policy_hashBytesPolicy hash for V-function mathematical validation
v_function_reference_utxoUtxoRefReference UTxO containing V-function validation script

Inputs

sourcepayment_addresswallet
existing_reservereserve_validator_addressscript
existing_icsilliquid_circulation_supply_validator_addressscript

Outputs

reserve_validator_addressnono
illiquid_circulation_supply_validator_addressyesno
payment_addressnono

update_d_parameter

Update Existing D-Parameter Values ================================= Modifies the existing D-parameter configuration to change candidate limits. This enables governance to dynamically adjust validator candidate constraints. Transaction Flow: 1. References governance UTxO for authorization validation (read-only) 2. Consumes the existing D-parameter UTxO containing current limits 3. Creates new D-parameter UTxO with updated candidate limit values 4. Preserves the D-parameter token (no token burning or minting required) 5. Returns change to the payment address Security Requirements: - Must have valid governance authorization for parameter modifications - Existing D-parameter UTxO must be properly identified and consumed - New parameter values must be within acceptable operational ranges - Atomic update ensures no intermediate invalid parameter states System Impact: - Immediately affects candidate registration limits across the Partner Chain - May require existing candidates to be reviewed against new limits - Governance decision reflected in updated on-chain parameter storage Parameters: - num_permissioned_candidates: New maximum for pre-approved candidates - num_registered_candidates: New maximum for stake pool registered candidates - existing_utxo: Reference to the current D-parameter UTxO to update Post-Conditions: - D-parameter system operates with the new candidate limits - Previous parameter values are permanently replaced - All future candidate operations respect the updated limits

Diagram

update_d_parameterd_parameter_asset_named_parameter_policy_hashd_parameter_validator_addressd_parameter_validator_scriptexisting_utxogovernance_utxorefmulti_sig_policy_hashnum_permissioned_candidatesnum_registered_candidatespayment_addresspayment_key d_parameter_validator_address payment_address d_parameter_validator_address payment_address existing_d_param source output 1 output 2

Parameters

d_parameter_asset_nameBytes
d_parameter_policy_hashBytes
d_parameter_validator_addressAddress
d_parameter_validator_scriptBytes
existing_utxoUtxoRefReference to the existing D-parameter UTxO to update
governance_utxorefUtxoRef
multi_sig_policy_hashBytes
num_permissioned_candidatesIntNew maximum number of permissioned candidates allowed
num_registered_candidatesIntNew maximum number of registered candidates allowed
payment_addressAddress
payment_keyBytes

Inputs

sourcepayment_addresswallet
existing_d_paramd_parameter_validator_addressscript

Outputs

d_parameter_validator_addressyesno
payment_addressnono

update_key_value

Update Existing Key-Value Pair in Governed Map ============================================= Modifies an existing entry in the governed map with new value data. Ensures atomic updates while maintaining governance oversight and token consistency. Transaction Flow: 1. References governance UTxO for authorization validation 2. Consumes the existing UTxO containing the current key-value pair 3. Creates new UTxO with the same key but updated value 4. Preserves exactly one governed map token for the entry 5. Handles token consolidation if multiple UTxOs exist for the same key Security Requirements: - Must have valid governance authorization - Existing UTxO must contain the specified key - Token count must remain consistent (no inflation) - Atomic update ensures no intermediate invalid states Parameters: - key: The existing key to update - new_value: The new value to associate with the key - existing_utxo: Reference to current UTxO containing the key-value pair Post-Conditions: - Key now maps to the new value - Previous value is permanently replaced - Map token count remains unchanged

Diagram

update_key_valueexisting_utxogovernance_utxorefgoverned_map_asset_namegoverned_map_policy_hashgoverned_map_validator_addressgoverned_map_validator_scriptkeynew_valuepayment_addresspayment_key governed_map_validator_address payment_address governed_map_validator_address payment_address existing_entry source output 1 output 2

Parameters

existing_utxoUtxoRefUTxO reference containing the current key-value pair
governance_utxorefUtxoRef
governed_map_asset_nameBytes
governed_map_policy_hashBytes
governed_map_validator_addressAddress
governed_map_validator_scriptBytes
keyBytesThe existing key identifier to update
new_valueBytesThe new value to associate with the key
payment_addressAddress
payment_keyBytes

Inputs

sourcepayment_addresswallet
existing_entrygoverned_map_validator_addressscript

Outputs

governed_map_validator_addressyesno
payment_addressnono

insert_permissioned_candidates

Insert Initial Permissioned Candidates List ========================================== Establishes the first permissioned candidates list for the Partner Chain. This creates governance-approved validators that don't require stake pool ownership. Transaction Flow: 1. References governance UTxO for authorization validation (read-only) 2. Mints a permissioned candidates token to authenticate the candidate list 3. Creates permissioned candidates UTxO containing the approved validator list 4. Stores candidate data including consensus keys for each validator 5. Returns change to the payment address Security Requirements: - Must have valid governance authorization for candidate list creation - Permissioned candidates token provides unique identification for the list - All candidate data must be properly formatted for consensus participation - Governance oversight ensures only approved validators are included Candidate Management: - Pre-approved validators bypass stake pool ownership requirements - Each candidate includes multiple consensus keys (Aura, Grandpa, sidechain) - Governance has full control over permissioned candidate selection - List can be updated through subsequent governance transactions System Integration: - Permissioned candidates participate alongside registered candidates - Subject to D-parameter limits for total candidate count - Enables hybrid validator selection (governance + stake-based) Parameters: - candidates: List of pre-approved validator candidates with consensus keys Post-Conditions: - Permissioned candidates are eligible for validator selection - Governance maintains control over the approved candidate list - System supports both permissioned and registered validation models

Diagram

insert_permissioned_candidatescandidatesgovernance_utxorefpayment_addresspayment_keypermissioned_candidates_asset_namepermissioned_candidates_policy_hashpermissioned_candidates_policy_scriptpermissioned_candidates_validator_address payment_address payment_address permissioned_candidates_validator_address source output 2 output 1

Parameters

candidatesListList of governance-approved validator candidates
governance_utxorefUtxoRef
payment_addressAddress
payment_keyBytes
permissioned_candidates_asset_nameBytes
permissioned_candidates_policy_hashBytes
permissioned_candidates_policy_scriptBytes
permissioned_candidates_validator_addressAddress

Inputs

sourcepayment_addresswallet

Outputs

permissioned_candidates_validator_addressyesno
payment_addressnono

insert_d_parameter

Insert D-Parameter Values for Candidate Limits ============================================= Establishes the initial D-parameter configuration that controls the maximum number of permissioned and registered candidates allowed in the Partner Chain system. Transaction Flow: 1. References governance UTxO for authorization validation (read-only) 2. Mints a D-parameter token to authenticate and identify the parameter entry 3. Mints additional multi-signature policy token for governance operations 4. Creates D-parameter UTxO containing the candidate limit configuration 5. Returns change including the minted multi-sig token to payment address Security Requirements: - Must have valid governance authorization for parameter creation - D-parameter token provides unique identification for the parameter set - Multi-signature token enables future governance operations - Parameter values must be within acceptable ranges for system operation System Impact: - Defines maximum validator candidate limits for the Partner Chain - Establishes governance control over candidate registration processes - Enables future updates to candidate limits through governance decisions Parameters: - num_permissioned_candidates: Maximum number of pre-approved candidates allowed - num_registered_candidates: Maximum number of stake pool registered candidates allowed Post-Conditions: - D-parameter system is operational with defined candidate limits - Governance can modify these parameters through update transactions - Candidate registration processes respect these defined limits

Diagram

insert_d_parameterd_parameter_asset_named_parameter_policy_hashd_parameter_policy_scriptd_parameter_validator_addressgovernance_utxorefmulti_sig_policy_hashnum_permissioned_candidatesnum_registered_candidatespayment_addresspayment_key payment_address d_parameter_validator_address payment_address source output 1 output 2

Parameters

d_parameter_asset_nameBytes
d_parameter_policy_hashBytes
d_parameter_policy_scriptBytes
d_parameter_validator_addressAddress
governance_utxorefUtxoRef
multi_sig_policy_hashBytes
num_permissioned_candidatesIntMaximum number of permissioned candidates allowed in the system
num_registered_candidatesIntMaximum number of registered candidates allowed in the system
payment_addressAddress
payment_keyBytes

Inputs

sourcepayment_addresswallet

Outputs

d_parameter_validator_addressyesno
payment_addressnono

update_permissioned_candidates

Update Existing Permissioned Candidates List =========================================== Modifies the existing permissioned candidates list with new validator selections. This enables governance to dynamically manage pre-approved validator candidates. Transaction Flow: 1. References governance UTxO for authorization validation (read-only) 2. Consumes the existing permissioned candidates UTxO containing current list 3. Creates new permissioned candidates UTxO with updated validator list 4. Preserves the permissioned candidates token (no token operations required) 5. Returns change to the payment address Security Requirements: - Must have valid governance authorization for candidate list modifications - Existing candidates UTxO must be properly identified and consumed - New candidate data must be properly formatted for consensus participation - Atomic update ensures no intermediate invalid candidate states Governance Control: - Enables adding new pre-approved validators to the system - Allows removal of validators who should no longer participate - Supports updating consensus keys for existing candidates - Maintains governance oversight over validator selection process System Impact: - Immediately affects validator eligibility for Partner Chain consensus - Updated candidates become available for validator selection - Removed candidates are no longer eligible for validation - Changes are permanent until subsequent governance updates Parameters: - candidates: Updated list of governance-approved validator candidates - existing_utxo: Reference to the current permissioned candidates UTxO Post-Conditions: - Permissioned candidates list reflects the new governance decisions - Previous candidate list is permanently replaced - All consensus systems respect the updated candidate eligibility

Diagram

update_permissioned_candidatescandidatesexisting_utxogovernance_utxorefpayment_addresspayment_keypermissioned_candidates_asset_namepermissioned_candidates_policy_hashpermissioned_candidates_validator_addresspermissioned_candidates_validator_script payment_address permissioned_candidates_validator_address payment_address permissioned_candidates_validator_address source existing_candidates output 2 output 1

Parameters

candidatesListUpdated list of governance-approved validator candidates
existing_utxoUtxoRefReference to the existing permissioned candidates UTxO
governance_utxorefUtxoRef
payment_addressAddress
payment_keyBytes
permissioned_candidates_asset_nameBytes
permissioned_candidates_policy_hashBytes
permissioned_candidates_validator_addressAddress
permissioned_candidates_validator_scriptBytes

Inputs

sourcepayment_addresswallet
existing_candidatespermissioned_candidates_validator_addressscript

Outputs

permissioned_candidates_validator_addressyesno
payment_addressnono

register_candidate

Register New Validator Candidate =============================== Enables stake pool operators to register as validator candidates for the Partner Chain. Registration requires cryptographic proof of stake pool ownership and control. Transaction Flow: 1. Consumes registration UTxO as proof of registration rights/payment 2. Optionally consumes existing registration UTxOs for the same candidate (updates) 3. Creates new candidate UTxO with complete registration data and cryptographic proofs 4. Validates stake pool ownership through signature verification 5. Stores all consensus keys required for validator participation Security Requirements: - Must provide valid stake pool ownership signature - Partner chain signature must be verifiable with provided public key - Registration UTxO proves payment/authorization for registration - All consensus keys must be properly formatted for their respective protocols Cryptographic Validations: - Stake ownership signature validates control of existing Cardano stake pool - Partner chain signature proves control of dedicated validator keys - Multiple consensus keys support different aspects of validation (Aura, Grandpa, etc.) Parameters: - stake_ownership_pub_key: Public key of the Cardano stake pool - stake_ownership_signature: Signature proving stake pool control - partner_chain_pub_key: Dedicated public key for Partner Chain operations - partner_chain_signature: Signature with partner chain key - registration_utxo: UTxO used as registration proof/payment - own_pkh: Payment key hash identifying the registrant - candidate_keys: Additional consensus keys for validation protocols - existing_registration_utxos: Any existing registrations to update Post-Conditions: - Candidate is registered and eligible for validator selection - All cryptographic proofs are stored for verification - Previous registrations for this candidate are replaced

Diagram

register_candidateaura_keycandidate_addresscandidate_keycommittee_candidate_validator_addressgrandpa_keyown_pkhpartner_chain_pub_keypartner_chain_signaturereg_hashreg_indexregistration_utxostake_ownership_pub_keystake_ownership_signature candidate_address candidate_address committee_candidate_validator_address registration_input output 2 output 1

Parameters

aura_keyBytes
candidate_addressAddress
candidate_keyBytes
committee_candidate_validator_addressAddress
grandpa_keyBytes
own_pkhBytesPayment key hash uniquely identifying the registrant
partner_chain_pub_keyBytesDedicated public key for Partner Chain validator operations
partner_chain_signatureBytesSignature proving control of partner chain key
reg_hashBytes
reg_indexInt
registration_utxoUtxoRefUTxO reference providing registration authorization/payment
stake_ownership_pub_keyBytesCardano stake pool public key for ownership verification
stake_ownership_signatureBytesCryptographic proof of stake pool control

Inputs

registration_inputcandidate_addresswallet

Outputs

committee_candidate_validator_addressyesno
candidate_addressnono

deregister_candidate

Deregister Existing Validator Candidate ====================================== Removes a validator candidate from the Partner Chain registration system. This allows candidates to voluntarily exit or be removed from validator eligibility. Transaction Flow: 1. Consumes all existing registration UTxOs associated with the candidate 2. Validates stake pool ownership to ensure only authorized deregistration 3. Burns registered candidate tokens (effectively removing candidate status) 4. Returns all ADA value to the candidate address 5. Permanently removes candidate from validator selection eligibility Security Requirements: - Must be initiated by the candidate address (self-deregistration) - Stake pool public key must match existing registration records - All registration UTxOs for the candidate must be properly consumed - Candidate key signature required for transaction authorization Validation Process: - Identifies all registration UTxOs associated with the stake pool - Ensures complete removal of candidate registration data - Prevents partial deregistration that could leave invalid states Parameters: - stake_ownership_pub_key: Stake pool public key to identify the candidate - existing_registration_utxos: List of all registration UTxOs to remove Post-Conditions: - Candidate is no longer eligible for validator selection - All registration tokens are burned and removed from circulation - Registration data is permanently deleted from the Partner Chain - ADA value is returned to the candidate for potential re-registration

Diagram

deregister_candidatecandidate_addresscandidate_keycommittee_candidate_validator_addresscommittee_candidate_validator_scriptexisting_registration_utxos candidate_address committee_candidate_validator_address candidate_address source registrations_to_remove output 1

Parameters

candidate_addressAddress
candidate_keyBytes
committee_candidate_validator_addressAddress
committee_candidate_validator_scriptBytes
existing_registration_utxosListAll registration UTxOs associated with this candidate

Inputs

sourcecandidate_addresswallet
registrations_to_removecommittee_candidate_validator_addressscript

Outputs

candidate_addressnono

update_reserve_settings

Update Reserve Configuration and Vesting Parameters ================================================= Modifies the operational parameters of an existing reserve system. This enables governance to adjust vesting functions and reward distribution logic. Transaction Flow: 1. References multiple validator scripts for comprehensive authorization 2. Mints governance token to prove authorization for configuration changes 3. Consumes existing reserve UTxO containing current settings 4. Creates updated reserve UTxO with new vesting function configuration 5. Preserves all tokens and auth tokens while updating settings 6. Returns governance token and change to payment address Security Requirements: - Must have valid governance authorization for reserve modifications - Reserve auth token must be present to authorize configuration changes - New vesting function hash must be cryptographically secure - All existing tokens and balances must be preserved during update Configuration Management: - Updates the mathematical vesting function controlling token releases - Enables governance to respond to changing economic conditions - Allows optimization of reward distribution mechanisms - Maintains operational continuity while updating parameters Economic Impact: - Changes future token release patterns according to new vesting function - Does not affect past releases or current token balances - Enables adaptive economic policy for validator rewards - Supports long-term sustainability of reward distribution Parameters: - new_total_accrued_function_script_hash: Hash of the new V-function for vesting - existing_reserve_utxo: Reference to the current reserve UTxO to update Post-Conditions: - Reserve operates with updated vesting function parameters - All existing tokens and auth tokens remain unchanged - Future token releases follow the new vesting mathematics - Governance retains control over subsequent configuration changes

Diagram

update_reserve_settingsexisting_reserve_utxogovernance_asset_namegovernance_policy_hashgovernance_policy_scriptgovernance_utxorefilliquid_circulation_supply_validator_version_utxonew_total_accrued_function_script_hashpayment_addresspayment_keyreserve_auth_asset_namereserve_auth_policy_hashreserve_auth_policy_version_utxoreserve_validator_addressreserve_validator_scriptreserve_validator_version_utxoreward_token_asset_namereward_token_policy_id payment_address reserve_validator_address payment_address reserve_validator_address source existing_reserve output 2 output 1

Parameters

existing_reserve_utxoUtxoRefReference to the existing reserve UTxO to update
governance_asset_nameBytes
governance_policy_hashBytes
governance_policy_scriptBytes
governance_utxorefUtxoRef
illiquid_circulation_supply_validator_version_utxoUtxoRef
new_total_accrued_function_script_hashBytesHash of the new V-function for vesting calculations
payment_addressAddress
payment_keyBytes
reserve_auth_asset_nameBytes
reserve_auth_policy_hashBytes
reserve_auth_policy_version_utxoUtxoRef
reserve_validator_addressAddress
reserve_validator_scriptBytes
reserve_validator_version_utxoUtxoRef
reward_token_asset_nameBytes
reward_token_policy_idBytes

Inputs

sourcepayment_addresswallet
existing_reservereserve_validator_addressscript

Outputs

reserve_validator_addressyesno
payment_addressnono

init_governance

Initialize Partner Chain Governance System ======================================== Bootstrap transaction that establishes the foundational governance infrastructure for a new Partner Chain. This is typically the first governance transaction executed. Transaction Flow: 1. Consumes a genesis UTxO to establish unique Partner Chain identity 2. Mints the initial version oracle token using governance script authorization 3. Creates the first governance UTxO containing the governance authority parameters 4. Stores the multi-signature policy script reference for future governance operations Security Requirements: - Must consume a specific genesis UTxO to prevent duplicate chains - Requires multi-signature authorization through governance script - Creates immutable initial governance state with upgrade capabilities Post-Conditions: - Governance system is operational and ready for subsequent operations - Version oracle validator contains the governance authority token - Multi-signature policy is established for future governance decisions

Diagram

init_governancemulti_sig_policy_hashpayment_addresspayment_keyversion_oracle_asset_nameversion_oracle_policy_hashversion_oracle_policy_scriptversion_oracle_validator_address payment_address payment_address version_oracle_validator_address genesis_input output 2 output 1

Parameters

multi_sig_policy_hashBytes
payment_addressAddress
payment_keyBytes
version_oracle_asset_nameBytes
version_oracle_policy_hashBytes
version_oracle_policy_scriptBytes
version_oracle_validator_addressAddress

Inputs

genesis_inputpayment_addresswallet

Outputs

version_oracle_validator_addressyesno
payment_addressnono

create_reserve

Create Token Reserve for Controlled Distribution ============================================== Establishes a new token reserve system for managing reward distribution and vesting. Creates the complete infrastructure for controlled token release mechanisms. Transaction Flow: 1. References multiple script versions for validation and minting authorization 2. Mints essential tokens: Reserve Auth, Governance, and ICS Authority tokens 3. Creates primary reserve UTxO with initial token deposits and configuration 4. Creates multiple ICS (Illiquid Circulation Supply) UTxOs for token management 5. Establishes vesting function and reward distribution parameters Security Requirements: - Must have valid governance authorization for reserve creation - Reserve auth token provides exclusive control over reserve operations - ICS authority tokens control illiquid supply management - Vesting function hash must be cryptographically secure Token Management: - Deposits specified reward tokens into the reserve for distribution - Creates multiple ICS UTxOs for granular token release control - Establishes mathematical vesting function for time-based releases Parameters: - reward_tokens_amount: Initial amount of reward tokens to deposit - total_accrued_function_script_hash: Hash of the vesting calculation function - ics_initial_utxos_amount: Number of ICS UTxOs to create for management Post-Conditions: - Reserve is operational and ready for token distribution - Vesting mechanism is configured and functional - ICS system is initialized for controlled token releases - Governance has authority over reserve configuration changes

Diagram

create_reservegovernance_asset_namegovernance_policy_hashgovernance_policy_scriptgovernance_utxorefics_initial_utxos_amountilliquid_circulation_supply_authority_token_asset_nameilliquid_circulation_supply_authority_token_policy_hashilliquid_circulation_supply_authority_token_policy_scriptilliquid_circulation_supply_authority_token_policy_version_utxoilliquid_circulation_supply_validator_addresspayment_addresspayment_keyreserve_auth_asset_namereserve_auth_policy_hashreserve_auth_policy_scriptreserve_auth_policy_version_utxoreserve_validator_addressreserve_validator_version_utxoreward_token_asset_namereward_token_policy_idreward_tokens_amounttotal_accrued_function_script_hash payment_address illiquid_circulation_supply_validator_address payment_address reserve_validator_address source output 2 output 3 output 1

Parameters

governance_asset_nameBytes
governance_policy_hashBytes
governance_policy_scriptBytes
governance_utxorefUtxoRef
ics_initial_utxos_amountIntNumber of ICS UTxOs to create for token management
illiquid_circulation_supply_authority_token_asset_nameBytes
illiquid_circulation_supply_authority_token_policy_hashBytes
illiquid_circulation_supply_authority_token_policy_scriptBytes
illiquid_circulation_supply_authority_token_policy_version_utxoUtxoRef
illiquid_circulation_supply_validator_addressAddress
payment_addressAddress
payment_keyBytes
reserve_auth_asset_nameBytes
reserve_auth_policy_hashBytes
reserve_auth_policy_scriptBytes
reserve_auth_policy_version_utxoUtxoRef
reserve_validator_addressAddress
reserve_validator_version_utxoUtxoRef
reward_token_asset_nameBytes
reward_token_policy_idBytes
reward_tokens_amountIntInitial reward token deposit amount
total_accrued_function_script_hashBytesHash of the V-function for vesting calculations

Inputs

sourcepayment_addresswallet

Outputs

reserve_validator_addressyesno
illiquid_circulation_supply_validator_addressyesno
payment_addressnono

insert_key_value

Insert New Key-Value Pair into Governed Map ========================================== Creates a new entry in the decentralized governed map storage system. All map operations require governance authorization to ensure controlled access. Transaction Flow: 1. References governance UTxO to verify current authority (read-only) 2. Mints a new governed map token to represent the storage entry 3. Creates UTxO at governed map validator containing the key-value data 4. Enforces uniqueness and governance oversight for all map entries Security Requirements: - Must have valid governance reference for authorization - Each entry requires a unique governed map token - Key-value pairs are immutably stored in UTxO datums Parameters: - key: The storage key (must be unique across the map) - value: The associated data value to store Post-Conditions: - New key-value pair is available for querying - Governed map token exists representing the entry - Entry can be updated or removed through subsequent transactions

Diagram

insert_key_valuegovernance_utxorefgoverned_map_asset_namegoverned_map_policy_hashgoverned_map_policy_scriptgoverned_map_validator_addresskeypayment_addresspayment_keyvalue payment_address governed_map_validator_address payment_address source output 1 output 2

Parameters

governance_utxorefUtxoRef
governed_map_asset_nameBytes
governed_map_policy_hashBytes
governed_map_policy_scriptBytes
governed_map_validator_addressAddress
keyBytesThe unique key identifier for this map entry
payment_addressAddress
payment_keyBytes
valueBytesThe data value to associate with the key

Inputs

sourcepayment_addresswallet

Outputs

governed_map_validator_addressyesno
payment_addressnono

remove_key_value

Remove Key-Value Pair from Governed Map ====================================== Permanently removes an existing entry from the governed map storage system. This operation requires governance authorization and properly handles token burning. Transaction Flow: 1. References governance UTxO for authorization validation (read-only) 2. Consumes the existing UTxO containing the key-value pair to be removed 3. Burns the governed map token associated with the removed entry 4. Returns the ADA value to the payment address Security Requirements: - Must have valid governance authorization for map modifications - Target UTxO must exist and contain a valid governed map token - Ensures complete removal of the key-value mapping Current Implementation Note: - Token burning is commented out due to tx3 version limitations - Creates a placeholder UTxO instead of true token burning - Future versions should implement proper token burning mechanism Parameters: - existing_utxo: Reference to the UTxO containing the key-value pair to remove Post-Conditions: - Key-value pair is no longer accessible in the governed map - Associated map token is effectively removed from circulation - ADA value is returned to the payment address

Diagram

remove_key_valueexisting_utxogovernance_utxorefgoverned_map_asset_namegoverned_map_policy_hashgoverned_map_validator_addressgoverned_map_validator_scriptpayment_addresspayment_key governed_map_validator_address payment_address governed_map_validator_address payment_address entry_to_remove source output 2 output 1

Parameters

existing_utxoUtxoRefReference to the UTxO containing the key-value pair to remove
governance_utxorefUtxoRef
governed_map_asset_nameBytes
governed_map_policy_hashBytes
governed_map_validator_addressAddress
governed_map_validator_scriptBytes
payment_addressAddress
payment_keyBytes

Inputs

sourcepayment_addresswallet
entry_to_removegoverned_map_validator_addressscript

Outputs

payment_addressnono
governed_map_validator_addressnono

update_governance

Update Governance Authority and Transfer Control ============================================== Critical transaction that transfers governance control to new authority parameters. This enables governance evolution and multi-signature policy updates for Partner Chains. Transaction Flow: 1. Consumes the current governance UTxO containing existing authority tokens 2. Burns the old version oracle token (effectively ending previous governance) 3. Mints new version oracle token with updated governance policy parameters 4. Creates new governance UTxO with the updated authority configuration 5. Establishes the new multi-signature parameters for future operations Security Requirements: - Must be authorized by the current governance authority - Atomic transition ensures no governance power vacuum or overlap - New governance parameters must be cryptographically valid - Multi-signature policy must be properly formatted and secure Critical Security Implications: - This transaction effectively transfers complete control of the Partner Chain - New governance authority gains control over all governed operations - Previous governance authority is permanently revoked after execution - All future governance decisions require the new multi-signature policy Governance Continuity: - Ensures seamless transition between governance authorities - Maintains governance token uniqueness (only one valid at a time) - Preserves governance UTxO reference for subsequent operations Parameters: - old_version_oracle_policy_hash: Hash of the current governance policy to revoke Post-Conditions: - New governance authority has exclusive control over Partner Chain operations - Previous governance tokens are permanently burned and invalid - All governed systems (maps, parameters, candidates) respect new authority - Governance evolution mechanism remains available for future updates

Diagram

update_governancegovernance_utxorefmulti_sig_policy_hashold_version_oracle_policy_hashpayment_addresspayment_keyversion_oracle_asset_nameversion_oracle_policy_hashversion_oracle_policy_scriptversion_oracle_validator_address payment_address version_oracle_validator_address payment_address version_oracle_validator_address source current_governance output 2 output 1

Parameters

governance_utxorefUtxoRef
multi_sig_policy_hashBytes
old_version_oracle_policy_hashBytesCurrent governance policy hash to be replaced
payment_addressAddress
payment_keyBytes
version_oracle_asset_nameBytes
version_oracle_policy_hashBytes
version_oracle_policy_scriptBytes
version_oracle_validator_addressAddress

Inputs

sourcepayment_addresswallet
current_governanceversion_oracle_validator_addressscript

Outputs

version_oracle_validator_addressyesno
payment_addressnono

handover_reserve

Handover Reserve Control to Illiquid Circulation Supply ====================================================== Transfers complete reserve control to the illiquid circulation supply system. This represents a permanent transition from controlled reserve to open circulation. Transaction Flow: 1. References multiple validator scripts for authorization and validation 2. Mints governance token to prove authorization for this critical operation 3. Consumes the existing reserve UTxO containing all reserve assets 4. Burns the reserve auth token, permanently disabling reserve operations 5. Transfers all reserve tokens to illiquid circulation supply validator 6. Creates ICS output with appropriate datum based on token content Security Requirements: - Must have valid governance authorization for this irreversible operation - Reserve auth token burning ensures no future reserve operations are possible - All reserve tokens must be completely transferred to ICS system - Governance token validates the authority for this critical transition Permanent Transition: - This operation is irreversible once executed successfully - Reserve system becomes permanently non-operational after handover - All token management transitions to illiquid circulation supply - No future reserve deposits, releases, or updates are possible Economic Impact: - Completes the transition from controlled reserve to open circulation - All remaining tokens become available through ICS mechanisms - Eliminates central reserve control over token distribution - Represents final stage of token distribution lifecycle Token Management: - Creates ReserveTransfer datum if tokens are present in output - Creates unit datum for minimal ADA-only outputs - Ensures proper ICS integration for continued token management Parameters: - existing_reserve_utxo: Reference to the reserve UTxO to be handed over Post-Conditions: - Reserve system is permanently disabled and non-operational - All reserve tokens are under illiquid circulation supply control - Reserve auth tokens are burned and cannot be recreated - Token distribution continues through ICS mechanisms only

Diagram

handover_reserveexisting_reserve_utxogovernance_asset_namegovernance_policy_hashgovernance_policy_scriptgovernance_utxorefilliquid_circulation_supply_validator_addressilliquid_circulation_supply_validator_version_utxopayment_addresspayment_keyreserve_auth_asset_namereserve_auth_policy_hashreserve_auth_policy_scriptreserve_auth_policy_version_utxoreserve_validator_addressreserve_validator_scriptreserve_validator_version_utxo payment_address reserve_validator_address illiquid_circulation_supply_validator_address payment_address source existing_reserve output 1 output 2

Parameters

existing_reserve_utxoUtxoRefReference to the existing reserve UTxO to hand over
governance_asset_nameBytes
governance_policy_hashBytes
governance_policy_scriptBytes
governance_utxorefUtxoRef
illiquid_circulation_supply_validator_addressAddress
illiquid_circulation_supply_validator_version_utxoUtxoRef
payment_addressAddress
payment_keyBytes
reserve_auth_asset_nameBytes
reserve_auth_policy_hashBytes
reserve_auth_policy_scriptBytes
reserve_auth_policy_version_utxoUtxoRef
reserve_validator_addressAddress
reserve_validator_scriptBytes
reserve_validator_version_utxoUtxoRef

Inputs

sourcepayment_addresswallet
existing_reservereserve_validator_addressscript

Outputs

illiquid_circulation_supply_validator_addressyesno
payment_addressnono

Profiles

Pre-configured sets of environment and party values for different deployment targets.

Back to all Protocols