Skip to main content

DApp Integration Reference Case

1. Scope

This appendix uses a transactional DApp to define the integration boundaries of POC V2. It does not prescribe one business state machine for every application. Games, content platforms, task systems, DeFi applications, and supply-chain applications may define domain-specific maturity conditions, provided that candidate activity, mature business fact, trusted issuance, and Activated Power remain distinct protocol stages.

2. Mature Contribution

Payment, interaction, order creation, or a successful frontend response constitutes candidate activity only. A contribution becomes mature only after the business state machine has excluded the principal revocation paths or has entered an explicit, governable correction stage.

Fact classTransactional DApp examplePOC treatment
Candidate activityOrder placement, payment, inventory lockDoes not create POC Power
Maturity conditionFulfilment confirmation, service acceptance, lock-period expiryPermits contribution-issuance evaluation
Mature contributionSettlement executed and net value determinedMay enter the trusted issuance path
Refund or disputeRefund, arbitration, fraud, or chargebackCancels, freezes, offsets, or corrects contribution

3. Reference Journey

A transactional DApp contribution journey: payment and fulfilment establish candidate facts; a mature settlement produces a finalized ContributionEvent through the trusted path; Validator computation, weighted QC, and Atomic Activate then produce Activated Power.

The reference sequence is:

  1. The user signs a business transaction with a wallet.
  2. The contract executes payment, asset lock, or a business-state transition.
  3. Fulfilment, acceptance, lock-period, and settlement rules establish the mature business fact.
  4. The DApp contribution manager validates maturity, idempotency, pause state, beneficiary, and custody.
  5. The DApp issues its equity token through poc_contribution, producing a ContributionEvent.
  6. After finality, the event enters the next Validator computation range.
  7. POC V2 performs independent recomputation, Vote/QC formation, Candidate delivery, Batch, Seal, and Atomic Activate.
  8. The DApp frontend and downstream modules read Activated Power from PowerReadModel.

4. Registry and Equity Token

Before integration, the DApp shall establish the following identities in the Registry:

  • application administration and on-chain addresses;
  • the DApp equity token;
  • the custody address;
  • POC admission and pause state;
  • effective weight and its period semantics; and
  • the Topo DEX base_token/quote_token price pair.

The equity token is the value carrier and price identity of the trusted contribution path. It is not Power. A user obtains protocol-readable Power only after the resulting ContributionEvent has entered deterministic period computation and the Candidate has been atomically activated.

5. Topo DEX Price Integration

The DApp shall configure an auditable Topo DEX price identity for its equity token. POC uses the latest stable price at the Context price_read_fence; it does not use a backend quotation, a provisional current-period observation, or a contribution-period-specific price.

Integration acceptance shall confirm that:

  • the price source is registered and its reporters are authorized;
  • at least one stable price and corresponding PriceUpdatedEvent exist;
  • the Registry price-identity mapping is unambiguous;
  • a task returns Abstain when no stable price exists and never substitutes a default value; and
  • user and operational interfaces may display price staleness but may not replace the protocol price.

6. Business Transaction Entry

A backend accepting wallet-signed transactions shall perform the following validations:

ControlRequirement
IdentityThe sender matches the authenticated wallet and the chain ID is correct
TargetContract address, module, function, and generic parameters are allowlisted
SemanticsOrder, asset, quantity, beneficiary, and business state match authoritative service facts
IdempotencyTransaction hash, business object, and retry operation have explicit unique identities
ResultRPC acceptance is not execution success; the finalized chain fact is authoritative

The backend shall not operate as a blind signedTx relay and shall not treat local database state as proof of on-chain execution.

7. Contract Responsibilities

The DApp Move contracts should separate:

  • business state and authorization;
  • assets, inventory, custody, and refunds;
  • settlement and maturity conditions;
  • the contribution manager; and
  • public events and views.

A ContributionEvent shall originate from the trusted poc_contribution path. DApp business events remain valid audit evidence but shall not be substituted for POC input.

8. Separation of Business Settlement and POC

Failure of contribution issuance or later POC settlement shall not block a valid merchant-funds settlement. The business state machine shall complete the lawful asset and entitlement transition before submitting the mature fact for contribution issuance.

ScenarioBusiness resultPOC result
Settlement and contribution issuance succeedMerchant settlement completesA ContributionEvent is produced
Settlement succeeds; contribution issuance is temporarily unavailableMerchant settlement remains completeA retryable or held state is recorded; no event is fabricated
Refund or dispute precedes settlementRefund, arbitration, or cancellation proceedsNo contribution is issued
Dispute follows issuanceBusiness state is corrected under governance rulesFuture offset, reverse contribution, or governance correction applies
Application is pausedExisting business operations follow safe-completion rulesNew contribution issuance stops

9. Event Projection and User Interface

An event consumer shall project finalized chain facts only and shall support idempotency, replay, gap detection, and reconciliation. User interfaces shall distinguish:

  • business transaction submitted;
  • on-chain business fact finalized;
  • contribution matured;
  • ContributionEvent produced;
  • contribution included in a POC computation range;
  • Candidate not yet activated; and
  • Activated Power available for reading.

Representing these states as a single “reward successful” status obscures finality, NoQuorum, and automatic catch-up semantics.

10. Integration Stages

StagePrimary deliverableExit criterion
I0 Business semanticsState machine, maturity condition, refund, and dispute rulesProduct, contract, backend, and test definitions are consistent
I1 On-chain factsMove contracts, events, views, permissions, and initializationCritical paths and negative tests pass
I2 POC identityRegistry, equity token, custody, weight, and price identityAll state is queryable and auditable
I3 Trusted issuanceContribution manager and poc_contribution integrationMaturity, duplicate, pause, and balance tests pass
I4 Projection and reconciliationConsumer, read model, and reconciliationState can be replayed and repaired from chain facts
I5 Shadow integrationObservation of Contribution, Context, and Validator resultsInputs remain consistent across multiple periods without production Power writes
I6 Controlled enablementEnforced testnet operation and limited production pilotSecurity gates, monitoring, and failure exercises pass

11. Integration Acceptance

  • Candidate activity and mature contribution use distinct on-chain states.
  • Payment success does not directly create Power.
  • ContributionEvent can originate only from the trusted POC path.
  • Registry application, token, custody, state, weight, and price identity are consistent.
  • A POC failure cannot block a valid business-funds settlement.
  • Refund, dispute, pause, and post-issuance correction have explicit states and audit events.
  • Consumers can replay finalized chain facts without relying on unverifiable local logs.
  • The frontend distinguishes contribution issuance, Candidate processing, and Power activation.