• Actors
    • Organizers (end users)
      • Assigners
      • Receivers
    • Recorders
      • Underwriters
      • Chainmakers
    • Checkers
  • Functional Components
    • Asset Organizer
      1Analogous to common cryptocurrency wallet software.
    • UnderwriterBot
    • ChainmakerBot
      • Genesis Block Maker
    • ChainCheckerBot
    • Communication Layer
      • NetworkCheckerBot
  • Data Structures
    • Numbers
    • Identity
    • Assignment Contract
    • Underwriting Contract
    • Block
      3a possible new end of the blockchain.
    • Error Notice
  • Functional Layers
    • Intra-chain transactions
    • Inter-chain/Multi-chain transactions
      • Homogeneous Assign Onward multi-chain transactions
      • Heterogeneous transactions including non-Assign Onward blochchains
    • On-chain application data publishing
      • Advertising
      • Smart contracts

4User stories, or bot tales when the action only involves bots.

Assignment Proposal

An organizer
5Assigner or Receiver
prepares a partial assignment contract using their Asset Organizer application.
6Asset organizer software may optionally contact one or more underwriters to obtain recent blockchain information. The asset organizer at least retains relevant block information from the last recorded contract it received confirmation of (from an underwriter.)
Then they communicate this to all parties to the contract for negotiation and acceptance.

Acceptance of Assignment Proposal

Once the assignment contract is valid (signed by all parties) it is ready to go to one or more underwriters.
7An assignment contract may specify underwriter actors and underwriting amounts, or may leave part or all of the underwriting open for any willing underwriter to consider.

Request for Underwriting

Underwriters consider the assignment contract, if the recording bid is sufficient they proceed to assemble underwriting shares in accordance with the requirements of the assignment contract, and validate the sources of shares.

Acceptance for Underwriting

Once the underwriting contract
8which is a wrapper around the assignment contract
is signed by all sources of underwriting shares, it might be communicated to concerned asset organizers as notification
9paranoid asset organizers may stipulate that one or more parties to the assignment contract must sign off on the underwriting before the underwriting contract becomes a valid request for recording. The only use case I am imagining for this at the moment is a large transaction which needs a long time horizon to successfully underwrite and record the parties to that contract might want to check the underwriting themselves before committing to a long time attempt to record.
Another potential use of Asset Organizer countersignature on underwriting proposals would be to put transactions out to the underwriter market for open bid, accepting the most attractive underwriting offer.
of acceptance for underwriting, but it certainly wants to be communicated to the chainmakers as a request for recording.

Request for Recording

Chainmakers consider the underwriting contract, most of the time it should have some residual value and be worth recording in the next block, but high traffic spikes or other tax incentive driven situations may lead to the underwriting contract not being included in the desired new block cycle(s). When this is the case, underwriters must re-validate for double-spends and resubmit the updated underwriting contract for consideration by the chainmakers.

New Block Proposal

Chainmakers attempt to construct new blocks with the highest possible residual value, which generally include the most underwriting contracts. Proposed blocks are communicated to concerned underwriters.

New Block Approval

Underwriters must then choose the best
10Generally speaking, the best new block is the one with the highest residual value, primarily because it has the best chance to be continued by the next block in the chain.
blocks to validate, countersign, and return to the chainmakers. When a block is not countersigned by an underwriter, it loses the residual value of the associated underwriting contract.

New Block Publication

Chainmakers then take their new blocks with the highest residual value, censor any underwriting contracts which were not fully countersigned
11Censored contracts shorten the block, lowering the per-byte tax, and a block which contains underwriting contracts which are not fully countersigned is invalid - and therefore of 0 value.
and publish them, attempting to be the most valuable next block in the chain so that subsequent blocks will chain to them.

Transaction Confirmation

Underwriters monitor new block publication and when their Asset Organizers' assignment contract has been included in the stable blockchain, they notify the Asset Organizers with a copy of the recording block. Receivers of shares may then use that block, together with their associated private keys, to propose future assignment contracts.

Underwriter Signature Checking

Chain checkers
12Note that any functional component may also implement chain checker functionality, chainmakers are particularly well placed to catch errors before they are incorporated in the blockchain, but any application anywhere may find errors and report them to receive shares.
monitor any and all signed transactions. When underwriters or chainmakers sign an incorrect contract
13Some examples: any source of underwritten or underwriting shares traces back to a double spend in the signed chain, timestamps out of sequence (indicating time-lying), invalid data format, incorrect checksums, etc.
errorcheckers may publish notice of error on the blockchain to claim shares from the underwriting.

Chain Checking

During the course of their work, chain checkers end up validating many underwriting contracts. When an chain checker validates all sources of shares in a given block and they were all confirmed as correct, the chain checker may post their own underwriting shares on a claim to collect part of the block validation bounty.
14A portion of every assignment contract shares are set aside for block validation, and this amount is shared among chain checkers. If the chain checker makes a claim of "all good" and another chain checker finds them to be in error, the erroneous chain checker's underwriting shares may be claimed by the finder of the error.

Loop Closure

Especially during development, but also possibly long term, when a transaction is considered and rejected, it may always be rejected with silence, but it may also be faster and more efficient to communicate a notice of rejection and reason why, possibly with suggested correction. Like: recording bid too low, try this amount.


The network layer is generic, modular, allowing actors to communicate data structures during execution of actions. Some communication is point to point (actor to actor) and several types of communication are broadcast: for instance to all chainmakers, or all interested underwriters. Initial testing is anticipated to use RabbitMQ, but before widespread deployment, a F2F small world network,
15Possibly still using RabbitMQ as a communication layer.
including some behavior monitoring for bad actors on the network, is desirable. In support of behavior monitoring, it is anticipated that actors may adopt long-term unique ids (key pairs) in support of good behavior rewarding algorithms.