Table of Contents

Namespace NArk.Arkade.Emulator

Classes

ArkadeBatchSessionExtension

IBatchSessionExtension that drives emulator co-signing at the PSBT-emitting points of a batch flow. Idempotent — passes PSBTs through unchanged when no input in the batch is arkade-bound.

ArkadeEmulatorPacketProvider

ISpendExtensionPacketProvider that contributes the Arkade EmulatorPacket to a spend's Extension OP_RETURN, so covenant (arkade-bound) inputs carry the script bytes + witness the emulator needs to co-sign. Stateless and cheap: returns nothing when the spend has no arkade-bound input, so it can be registered unconditionally.

ArkadeEmulatorSpendSubmitter

ISpendSubmitHandler that routes covenant (arkade-bound) offchain spends through the emulator co-signing service instead of arkd directly. The emulator validates each input's ArkadeScript, adds its co-signature, forwards the set to arkd and finalizes — so once it returns, the spend is fully submitted.

ArkadePsbtExtensions

Helpers that link the existing ArkCoin + PSBT spend flow to the emulator co-signing service. The integration points:

ConnectorTreeNode

One node in the connector tree carried through the finalization request.

EmulatorClient

HTTP/JSON implementation of IEmulatorProvider. Designed for DI — register via services.AddEmulatorClient(...) and inject. The HttpClient base address must be set to the emulator server root (e.g. http://localhost:7073).

EmulatorClientOptions

Configuration for EmulatorClient.

EmulatorEntry

One entry in an EmulatorPacket — binds a transaction input to the ArkadeScript bytecode the emulator should execute and the witness stack that script consumes.

EmulatorFinalizationResult

Co-signed forfeits + (conditionally) commitment tx from POST /v1/finalization.

EmulatorInfo

Server identification returned from GET /v1/info.

EmulatorPacket

TLV record (type tag 0x01) carried inside the same Extension OP_RETURN envelope the asset packet uses, binding ArkadeScript bytecode + a witness stack to specific transaction inputs for emulator co-signing.

EmulatorPubKeys

The covenant co-signer key each Arkade network runs, pinned rather than asked for.

EmulatorSubmitTxResult

Co-signed PSBTs returned from POST /v1/tx.

PrevArkTxProvider

Default IPrevArkTxProvider: serves previous Arkade transactions from the local virtual-tx store when present, then arkd's indexer (GetVirtualTxs), and finally — when a blockchain backend is supplied — from chain.

Interfaces

IEmulatorProvider

Client surface for an Arkade emulator co-signing service. Mirrors the ts-sdk's EmulatorProvider shape so callers picking a .NET vs. TypeScript wallet stack write the same orchestration code.

IPrevArkTxProvider

Resolves raw Arkade transactions by txid, so a spend can attach them to its PSBT inputs as prevarktx ark fields before the emulator sees it.