Blockchain Transaction Lifecycle Security Standard version 1

BSSC Specification

This Version
https://specs.blockchainssc.org/btl/v1.html
Date
2026-10-22
Editors
Max Courchesne-Mackie (Figment)
Chaals Nevile (BSSC)
Contributors
Joaquim Antunes (Halborn), Andrew Deupgrove (BSSC), Son Dinh (OpenZeppelin), Justin Fang (Halborn), Robert Gallagher (Mastercard), Opal Graham (Coinbase), Joel Kerr (Coinbase), Manny Khan (BitGo), Eric Lau (OpenZeppelin), Eric Meng (Coinbase), Julius Moye (Mastercard), John Neufeld (OpenZeppelin), Matan Nevo (Fireblocks), Akshar Rawal (Coinbase), Saravana Shanmugam (MasterCard), Noama Samreen (Coinbase), Paddy Walsh (Mastercard)
Latest Public Version URL
https://specs.blockchainssc.org/btl/
Audit Framework for this version
https://specs.blockchainssc.org/btl/audit-01/
Checklist for this version
https://specs.blockchainssc.org/btl/audit-01/checklist.html
Joaquim Antunes (Halborn), Andrew Deupgrove (BSSC), Son Dinh (OpenZeppelin), Justin Fang (Halborn), Robert Gallagher (Mastercard), Opal Graham (Coinbase), Joel Kerr (Coinbase), Manny Khan (BitGo), Eric Lau (OpenZeppelin), Eric Meng (Coinbase), Julius Moye (Mastercard), John Neufeld (OpenZeppelin), Matan Nevo (Fireblocks), Akshar Rawal (Coinbase), Saravana Shanmugam (MasterCard), Noama Samreen (Coinbase), Paddy Walsh (Mastercard)

Summary

This specification describes how to secure transaction creation, transport, signing and deployment, to reduce as far as possible risks that malicious parties or operational errors cause unanticipated loss or theft.

Table of Contents

Introduction

Purpose

Supply chain hacks, front-running, crypto-clippers, malicious software, and operational errors have all been a cause of transactions being carried out that do not represent what was intended, leading to substantial losses and to far larger risk exposure - although fortunately some errors whose potential risk exposure was in the many billions of dollars were able to be largely reversed by an approach of "defense-in-depth".

This standard seeks to normalize transaction creation, signing, delivery, and storage so integrity and security are baked into the process.

Audience

This specification is directed at several audiences:

Auditors: The specification enables auditors to assess whether a given system involved in the Blockchain Transaction Lifecycle meets the requirements specified here.

Developers and Service Providers: Transacation management service providers, and developers of tools to provide those services, can use this specification as guidance to ensure their tools and services implement best practice, providing secure management of transactions.

Users: End users of services and tools can use this specification, and more particularly assessments of conformance to it, to help determine whether a service or tool meets their requirements for security.

Policy Makers: This specification provides policy-makers with a broadly-backed guide to requirements for making tools and services that manage blockchain transactions secure.

Actors

This specification defines requirements for four functional Actors. An Actor works with a transaction and its bound metadata, in one of the following roles:

A single system can perform more than one of these services, and any of them can be performed by one system or a composition of several systems, applications, or components acting together.

Every normative requirement in this specification is an obligation on one or more of these Actors. Whether the Actor is a person, an automated process, a dedicated hardware device or a smart contract, the requirements are identical.

A system is assessed for conformance to this specification based on the services that it provides, against how it meets the relevant requirements for each type of Actor.

A Wallet is a tool for managing transactions, fulfilling the role of multiple Actors. This can provide a single convenient interface, and simplify the movement of transactions between Actors.

A User is a person or process (such as a software payroll system) that provides instructions to an Actor, for example to deploy a set of signed transactions at a specific time, or to create a particular transaction.

The term Consumer refers to whichever Actor a transaction is passed to next, for example a Signature Manager receiving a transaction from a Producer.

The Transaction Lifecycle

Transactions go through a lifecycle - Generation, Signing, Delivery, and Indexing. Throughout the lifecycle they need verification steps

Transactions are moved between Actors, generally following the cycle Producer -> Signature Manager -> Deployer -> Indexer.

Transactions can be moved automatically from one stage to the next, for example by a Wallet that integrates the full Transaction Lifecycle, or can be received from one Actor and passed to the next by a User.

Transaction Types

Several requirements apply to specific kinds of transaction. Two types are classified by their effect and one by its delivery timing. The axes are independent, so a single transaction may fall under more than one type.

By effect:

By delivery timing:

Conformance

The key terms "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" in this document MUST be interpreted as described in [RFC2119] as modified by [RFC8174] when they appear in all capitals, as shown here.

A valid statement of conformance to this specification MUST declare the types of Actor that the system assessed provides, and assess the system against the requirements that apply to each such declared Actor.

Requirements that list more than one Actor apply to any system that performs the role of any listed Actor.

Where a requirement refers to document, the relevant documentation MUST be available to any Actor that needs to act on the transaction or its metadata, and SHOULD be available publicly without restriction.

Where a requirement refers to maintain documentation, auditors MUST review the relevant documentation. Attesting conformance to this specification is an endorsement of the accuracy of such documentation.

Domains

Requirements are organized by the Actors they apply to.

A set of general requirements that apply to multiple types of Actor is follwed four requirement domain, one covering each specific type of Actor.

The lifecycle in the diagram (Generation, Signing, Delivery, Indexing) remains the narrative frame: transactions are constructed by a Producer, signed by a Signature Manager, delivered by a Deployer, and recorded by an Indexer. Integrity is verified at each handoff between Actors (see Verify Received Transactions and Communicate Transaction Data Securely).

  1. General Requirements
  2. Producer
  3. Signature Manager
  4. Deployer
  5. Indexer

General Requirements

Require Strong Authentication
All Actors MUST implement strong access control using industry-standard mechanisms

Purpose: Minimize the risk that unauthorzed parties can operate on transactions

Best practice is to implement automated Role-based access control to ensure timely update, with manual oversight.

For highly sensitive operations (such as confirming signature of large transactions, or Application Transactions) best practice includes confirming the operation through two distinct channels that use different transport and indentity verification, but for low-value transactions or operations that are not exposing key data this can introduce unjustifiable overhead.

It is acceptable to provide a "public" or "guest" Role, but setting configuration options per Enable Transaction Policies for Generation, Enable Transaction Policies for Signing and Enable Configured Policies for Deployment needs to be covered by appropriate access restrictions.

See also Communicate Securely, and see Implement Least Privilege, Review All Access, and Restrict PII Access in the BSSC General Privacy and Security Guidelines [GSP].

Audit Guidance

Tamper-Proof Logs
Logs MUST be immutable or tamper-evident

Purpose: Ensure that logs provide reliable information for auditing

Example approaches include using append-only store, hash-chaining, write-once-read-many (WORM) or immutable object storage for logs, or to provide external attestation of log integrity.

Audit Guidance

Retain logs
All Actors MUST follow a log retention policy that includes retaining logs for a minimum of 3 years

Purpose: Ensure that logs provide reliable information for auditing

It is important to consider any relevant legal requirements for data retention as well as operational goals.

Audit Guidance

Minimize Personal Information Exposure
All Actors SHOULD minimize the exposure of Personally Identifying Information (PII)

This includes separating recorded PII from other logged information and providing stricter access control, only exposing the information to parties who have an operation need to access it.

Purpose: Protect Personally Identifiable Information from malicious third parties, supporting user expectations and legal requirements about privacy

Audit Guidance

Document Personal Information Handling
All Actors MUST document their handling of Personally Identifying Information (PII)

Purpose: Provide transparency into management of sensitive data about users

This includes data used for authentication, "Know Your Customer" (KYC) and Anti-Money Laundering (AML) measures, and other customer management data.

Audit Guidance

Document Hashing Process
All Actors MUST document each hashing algorithm used.

Purpose: Provide transparency for security properties and interoperability

It is important for interoperability that any role receiving a transaction can determine the hashing algorithm used.

In addition different hashing algorithms have different levels of collision-resistance, and in practice the level of security they provide changes over time. Documenting the hashing algorithms used supports informed decisions about which tools to rely on.

For example, [ERC-712] specifies a process for hashing and signing typed structured data.

Audit Guidance

Document Signing Process
Each Role that signs transaction data MUST document the signing process it uses, including the signature scheme, the encoding of the signature, and any domain separation applied. The documentation MUST cover any deviation from a standard it refers to, and MUST be sufficient for another party to reproduce the digest and verify the signature without tooling supplied by the signer.

Purpose: Enable any role receiving a transaction to establish independently what was signed

Documenting the hashing algorithm alone is not sufficient. Standards for signing typed structured data, such as [ERC-712], are frequently implemented with variations, for example hashing part of a structure differently, and those variations are often recorded only in the tooling that implements them.

Where a digest can only be reproduced by the implementation that produced it, no other role can establish what was signed, however clearly the transaction is presented.

See also Document Hashing Process, Hash Transactions and Verify Received Transactions.

Audit Guidance

Enable Canceling Transactions
Producers, Signature Managers, and Deployers MUST provide a mechanism to cancel a transaction, that results in the Actor securely deleting all artifacts with signed bytes, and activating any on-chain mechanism to invalidate signatures for that transaction.

Purpose: Enable secure transaction cancelation

This is particularly important for Stored Transactions, but is relevant to all transactions that have not been incorporated into a block.

Best practice is to emit a warning that a transaction has been canceled with a transaction identifier, enabling other Actors to cancel the transaction.

Audit Guidance

Check Complete Hashes and Addresses
All Actors that perform Address or Hash verification MUST compare entire addresses

Purpose: Protect against attacks that construct similar addresses

Verifying a subset like the first or last n bytes is not an uncommon procedure. However, it leads to vulnerabilities such as an address specifically constructed to have a matching subset. While it is harder to ensure that is the case with a hash, it also significantly reduces any integrity guarantee if only part of the hash is compared for verification.

Audit Guidance

Verify Received Transactions
All Actors MUST verify the integrity of the transaction and associated metadata upon receipt, ensuring the transaction bytes implement the intents expressed in the metadata attached by the Producer, and MUST cancel any transaction that fails verification.

Purpose: Ensure transactions match the intent expressed on creation

It is important to verify that if a "Time To Live" or expiry time for the transaction has passed then the actor cancels the transaction.

Best practice for Actors that incorporate a User Interface is to show the intents expressed in the metadata alongside the correspondinf features of the transaction itself.

See also Render from Signed Bytes

Audit Guidance

Manage a Secure Software Supply Chain
All Actors MUST maintain a secure Software supply chain, including:

Purpose: Manage software supply chain attack surfaces

Removing a component warrants the same scrutiny as adding one. Dropping a library that performs validation, for example, can weaken a service as much as introducing an unknown dependency.

Beat practice is to minimize dependencies to Software that is operationally necessary

Audit Guidance

Document Cryptography Migration Procedures
All Actors MUST document plans and any procedures for cryptographic migration scenarios, including protocol-level transitions to post-quantum algorithms.

Purpose: Provide transparency into resilience planning

Note that this requirement applies even if the Actor has no planning, or their planning is only to copy changes made upstream in software they use.

See also Document Supply Chains

Audit Guidance

Prepare for Cryptography Migration
All Actors SHOULD maintain operational readiness to adopt updated cryptographic schemes in accordance with protocol governance timelines.

Purpose: Ensure Actors can respond to changes in the cryptography environment in a timely manner

Audit Guidance

Implement Readability Standards
All Actors that provide a user interface MUST implement recognized best practices for presenting transaction information optimised for human readability

Purpose: Help people to understand and verify transaction data.

Audit Guidance

Render from Signed Bytes
All Actors that provide a user interface MUST derive any rendering of a transaction optimised for human readability from the transaction bytes themselves, and MUST NOT derive it from a request, an intent, or other metadata accompanying them.

Purpose: Ensure that what a person reads describes what the transaction does

A rendering produced from the request that prompted a transaction, rather than from the transaction itself, can differ from it, whether through error or through deliberate manipulation, and a person reading it has no way to detect the difference. For a Signature Manager the bytes in question are those presented for signature, and for an Indexer they are the bytes recorded for the transaction.

Metadata attached under Attach Vital Metadata can usefully be displayed alongside the rendering, so that a person can compare the intent that was declared with what the transaction does. It is not a substitute for rendering the bytes.

See also Implement Readability Standards and Present Crucial Information in Readibility-optimised form.

Audit Guidance

Present Crucial Information in Readibility-optimised form
Signature Managers, and Deployers, that provide a user interface, MUST present account addresses and transfer values in a form optimised for human readability

Purpose: Help people to understand and verify transaction data.

This information is crucial to making well-informed decisions, in particular regarding whether to sign and deploy transactions, and in configuring policy.

For example, [ERC-7730] is a widely implemented proposal for metadata describing how to present EVM contract calls and typed data in a form suitable for a person to read before signing. As it is a draft, implementing it is not formally required by Implement Readability Standards, but it is a good approach to use for meeting this requirement effectively.

See also Expose Transaction Value for Verification

Audit Guidance

Present Readibility-optimised Information
All Actors that provide a user interface SHOULD present information in a form optimised for human readability

Purpose: Help people to understand and verify transaction data.

While software effectively processes regular data formats, many of blockchain's native data formats are difficult for humans to process accurately. For example, Ethereum account addresses are subject to various well-known reading errors, and are therefore less useful as a presentation format in a user interface than offering a name that a user has previously decided to associate with a given address.

As well as the Crucial Information covered by Present Crucial Information in Readibility-optimised form this requirement covers Smart Contract code for deployment, function calls, and other information that is generally stored and transferred between tools in a machine-optimised format.

Audit Guidance

Maintain Transaction Integrity
A transaction's payload and metadata MUST NOT be changed except:

Any other software that transfers transactions MUST NOT change transaction payloads or metadata.

Purpose: Reduce the risk of transactions being altered in ways that could have undesirable consequences

Audit Guidance

Communicate Transaction Data Securely
All Actors that transmit transaction data MUST use communication channels that provide appropriate protection against unauthorized disclosure, modification, replay, and impersonation.

Purpose: Reduce the risk of transaction data being altered in transmission

Channels vulnerable to "man-in-the-middle" alteration can change data in transit, undermining the integrity of the delivered data.

One powerful (but somewhat expensive) approach to securing communication is to use parallel channels with independent transport and identity verification, verifying that the communications on the two channels match, as a protection against one of them being compromised.

Note that the highest security channels available can introduce significant overhead, and this requirement needs to be applied with reference to the context, balancing the cost in terms of effort and complexity against the value that is at risk.

See also Require Strong Authentication]

Audit Guidance

Expose Transaction Value for Verification
All Actors MUST expose the amount transferred, including the decimal point and the type of token/coin, in a form sufficient to verify it is correct.

Purpose: Ensure transaction values are accurately represented

Best Practice in user interfaces includes exposing the equivalent value in other currencies, whether fiat currencies such as Euros, or well-known cryptocurrencies such as Ethereum, according to configurable settings.

Where a converted value is exposed, best practice is to state the timestamp of the conversion and the source of the rate used, and to make clear that the converted figure is indicative rather than binding.

Audit Guidance

Producer

No Hidden Defaults
Producers MUST document all information used to generate transaction bytes, to enable deterministic reconstruction from explicit inputs.

Purpose: Ensure that transactions are reproducible, both for audit purposes and for convenience.

In a number of situations, producers add information that is incorporated into the transaction bytes generated for signature and deployment. To ensure the security and integrity of transactions can be verified, it is necessary that all the information used is available.

For example, incorporating hidden default values or introducing time-based randomness violate this requirement.

Audit Guidance

Attach Vital Metadata
Producers MUST attach a canonical metadata envelope, cryptographically bound to the transaction, that includes the explicit inputs, the unsigned transaction bytes, and the intent, sufficient to deterministically reconstruct the transaction (see No Hidden Defaults).

Purpose: Enable integrity verification

A non-normative example of a metadata envelope is given in Practical Transaction Lifecycle Examples.

Audit Guidance

Attach Useful Metadata
Producers SHOULD include context such as destination, required signer set, policy tags, destination chain or network, gas/fee policy, and expiry or time to live (TTL) in the metadata attached for Attach Vital Metadata

Purpose: Expand metadata available to meet further use cases

Audit Guidance

Validate Transactions for Each Chain
Producers MUST validate that constructed bytes conform to chain-specific serialization and field constraints.

Purpose: Ensure that transactions meet the specific requirements of each blockchain where they will be deployed, so chain-specific differences do not cause unexpected transaction behavior or outcomes.

Audit Guidance

Log Transaction Creation
Producers MUST log each creation event including its timestamp, producer ID, authenticated caller identity, request parameters, and network/chain.

Purpose: Provide transparency and auditability

Audit Guidance

Hash Transactions
Producers MUST provide the Consumer a signed cryptographic hash that covers the exact bytes of each transaction, and relevant metadata, in a canonical form.

Purpose: Enable integrity verification at other steps in the transaction lifecycle

This is important to downstream Actors, to enable end-to-end comparison and verifying integrity.

See also Verify Received Transactions and Verify at Point of Delivery

Audit Guidance

Use Hardened Environments
Producers MUST generate transactions involving sensitive data or key-derived parameters in a hardened environment with memory isolation and process sandboxing.

Purpose: Protect sensitive information in transactions from malicious third parties and from accidental exposure

See also Enable Transaction Policies for Generation

Audit Guidance

Validate Inputs
Producers MUST validate and sanitize all inputs before transaction construction to prevent injection or malformed data.

Purpose: To prevent malicious data injection, and processing of malformed data that will lead to a failed transaction.

Where inputs are generated from onchain data, best practice is to execute the method for retrieving the data at production time to ensure the retrieved input matches expected input.

Audit Guidance

Limit Gas Fees
Producers MUST bound gas/fee estimates within configurable limits and reject transactions exceeding thresholds without explicit approval.

Purpose: Provide control of the risk that transaction costs are unexpectedly high

See also Enable Transaction Policies for Generation

Audit Guidance

Simulate Transactions
Producers SHOULD expose the results of simulating transactions against the current chain state.

Purpose: Provide information on the real effects of a transaction before it is signed and deployed

See also Validate Transactions for Each Chain

Audit Guidance

Reject Unauthorized Construction
Producers MUST reject construction requests that are unauthenticated or unauthorized.

Purpose: Reduce the risk that a transaction is created by a malicious third party attempting to have it signed and deployed unwittingly

See also Enable Transaction Policies for Generation

Audit Guidance

Mitigate Timing Attacks
Producers SHOULD mitigate the effects of Timing Attacks (MEV) on the set of transactions

Purpose: Protect against excess loss of value, or other harmful impacts of timing attacks

There are various mitigation strategies available, for example using private transaction submission, deadline and slippage bounds, commit-reveal ordering, or batching.

Audit Guidance

Verify Transaction Sets
Producers that construct a related set of transactions SHOULD expose the complete set together, in a form sufficient to verify it performs exactly the intended actions with no missing and no extra steps.

Purpose: Ensure that multiple transactions are appropriately linked without performing unnecessary steps or skipping important safeguards.

Audit Guidance

Apply Transaction Policies to Generation
Producers MUST enforce configured policy such as maximum amounts, denylists/allowlists, and velocity controls before creating a transaction.

Purpose: Ensure that transactions are created as expected.

Audit Guidance

Enable Transaction Policies for Generation
Producers MUST provide a mechanism to configure policies covering

Purpose: Enable configurations relevant to the specific requirements for Producers

Note that while access allowlists and denylists are important, it is acceptable to provide an open policy treating all users as "public" or "guest", or fixed lists.

Best practice is to allow configuration of aspects including allowlists and denylists, velocity controls, maximum transaction amounts, and the like.

See also Use Hardened Environments, Limit Gas Fees, and Reject Unauthorized Construction.

Audit Guidance

Signature Manager

Log all signature requests
Signature Managers MUST logging of all attempts to sign a transaction with the public key of the signer, the transaction and its metadata envelope, the time, whether the transaction was successfully signed, and if not a reason for failure.

Purpose: Provide information to enable forensic analysis

Audit Guidance

Validate Allowed Signers
Signature Managers MUST maintain an allowlist of permitted signing addresses and MUST reject attempts to sign a transaction from addresses not on the list.

Purpose: Ensure that transactions are not signed by an unauthorized party, and that adding an authorized signer provides sufficient friction to incentivize careful usage without imposing warning fatigue that leads to insecure workarounds becoming a habit.

This requires that adding an authorized address for signature is either an explicit step that isn't part of signing, or that attempting to sign from an unauthorized address will not succeed unless there is a specific action to accept the new address as authorized.

Audit Guidance

Compare Old Transactions
Signature Managers SHOULD provide a mechanism to compare a transaction proposed for signing against previously signed transactions.

Purpose: Help verify that a transaction is similar to previous transactions, and identify accidentally and incorrectly anomalous transactions before deploying them.

Audit Guidance

Require Multiple Signers
Signature Managers MUST enable multi-signature approval policies

Purpose: Ensure that high-value or sensitive transactions can have an appropriate safety threshold of multiple signers for approval

For high-value or sensitive transactions it is often important to ensure that no single individual can authorize a transaction.

Audit Guidance

Verify Correct Ordering
Signature Managers MUST ensure correctness of ordering in transactions if more than one is being handled.

Purpose: Prevent submitting an ordered set of transactions that will not successfully complete according to the intent, which would therefore waste the effort and gas/fees consumed.

Best practice is generally to make initiation rely on successful completion of the preceding transaction.

Audit Guidance

Surface Timing Attack Warnings
Signature Managers SHOULD surface a warning about possible Timing Attacks on the set of transactions.

Purpose: Highlight any risk that a transaction will be subject to a Timing Attack, and help mitigate that risk

Audit Guidance

Apply Transaction Policies to Signing
Signature Managers MUST enforce configured policy such as maximum amounts, denylists/allowlists, and velocity controls before signing a transaction.

Purpose: Ensure specific configuration settings for signature are respected by the Signature Manager.

Audit Guidance

Enable Transaction Policies for Signing
Signature Managers MUST provide a mechanism to configure policy identifying

Purpose: Enable safeguards relevant to specific circumstances for signatures

Best practice is to enable a range of policy controls including transaction value limits, denylists, and velocity controls before signing a transaction.

Audit Guidance

Verify Bytecode
For Application Transactions, Signature Managers MUST verify that the bytecode of any contract to be deployed is accurately built from the declared source code before signing.

Purpose: Ensure Application Transactions are only signed when the code they deployed is verified

Audit Guidance

Verify Access Control
For Application Transactions, Signature Managers MUST ensure that initialization of a proxy contract is atomic, or enforces strong Access Control, before signing.

Purpose: Ensure Application Transactions are only signed when the code they deploy is protected against unauthorised initialization

Audit Guidance

Implement Upgrade Safety Controls
For high-impact Application Transactions (e.g., upgrades to core protocol contracts), Signature Managers SHOULD require time-locks or multi-party approval before signing.

Purpose: Enable safeguards to protect against "blind" signing high-impact Application Transactions

Where a signer alone lacks the context or capability to perform these verifications, the Signature Manager role MUST be composed of additional systems that can (see Roles).

Audit Guidance

Secure Stored Signed Transactions
Signature Managers MUST securely store signed transactions whose delivery to a Deployer is deferred, encrypted, with strong access control mechanisms

Purpose: Ensure that Stored transactions are only deployed as intended, and cannot be accessed and deployed maliciously or by accident

If a deferred transaction is sent for deployment at a time other than when the signer expects, it can lead to unexpected and harmful consequences.

Audit Guidance

Deployer

Delivery requirements vary by transaction type and urgency. As well as requirements that apply to Deployers independently of the type of transaction being deployed, some specific requirements for each transaction type is defined below:

General Deployer Requirements

Verify Deployment Authorization
Deployers MUST verify and log approval for the transaction before delivery.

Purpose: Ensure that transactions are not deployed without approval.

While this could be a simple request, especially in the case of a high-value transfer or a high-impact Application Transaction it could include a record of a Governance vote, a change management approval, security review sign-off, or a combination of these along with other elements.

See also Require Strong Authentication, Apply Configured Policies for Deployment and Enable Configured Policies for Deployment.

Audit Guidance

Log All Delivery Attempts
Deployers MUST log all delivery attempts with information including:

Purpose: Ensure records are sufficient for forensic analysis

It is important to note that different finality policies apply to diffierent blockchains, so these need to be taken into account is determining what is a "successful transaction".

Audit Guidance


Deployers SHOULD only broadcast transaction deployment requests to RPC nodes on a configured allowlist

Purpose: Reduce risk of timing attacks and malicious behavior by RPC nodes

See also Enable Transaction Policies for Deployment

Audit Guidance

Manage Retried Deliveries
Deployers MUST implement retry logic suitable for transient failures.

Purpose: Minimize network congestion and the risk of incurring penalties for perceived attempted Denial of Service

As a minimum, implementing a simple Exponential Backoff [WB-EP] meets this requirement.

Best practice is to monitor the network for transient failures, preventing repeated delivery attempts during network outage or RPC failures and delaying repeated attempts successively longer, to minimize the potential effect of replicating a Denial of Service Attack as well as any penalty designed to protect against such attacks, and to minimize contributing to network congestion.

Audit Guidance

Verify at Point of Delivery
Deployers MUST verify transaction integrity (via cryptographic hash comparison) immediately before broadcast to detect any tampering during transit or storage.

Purpose: Ensure that the transaction deployed is the transaction intended

Audit Guidance

Monitor Delivery Latency
Deployers SHOULD monitor delivery latency and time to execution, and emit an alert when transactions are not executed within defined thresholds.

Purpose: Ensure that occurrences of anomalous deployment or transactions failing to be executed according to expectations can be tracked, so appropriate remedial action can be taken, such as adjusting policies for Gas/fees to ensure faster (or slower) execution

The appropriate alerting mechanism depends on how the Deployer is integrated: a Deployer embedded behind a single interface may raise the alert through that interface, while a Deployer called by other software is more likely to emit an event or warning.

Audit Guidance

Apply Configured Policies for Deployment
Deployers MUST enforce configured policy such as approval requirements, maximum amounts, denylists/allowlists, and velocity controls before deploying a transaction.

Purpose: Ensure that deployment meets expectations set

Ignoring configured policy makes the software fundamentally unreliable.

Audit Guidance

Enable Configured Policies for Deployment
Deployers MUST provide a mechanism to configure policies including:

Purpose: Enable safeguards relevant to particular circumstances, and configuration needed to meet other requirements.

Best practice is also to enable policies including

Audit Guidance

Limit Transaction Changes at Delivery
Deployers MUST NOT change transaction payloads and metadata except to

Purpose: Ensure Deployers do not impact transaction Integrity

Audit Guidance

Requirements for Deploying Value-Transfer Transactions

Deliver Transactions Promptly
Deployers MUST promptly deliver transactions according to the transaction's expressed intent.

Purpose: Ensure that transaction deployment time meets expectations, helping avoid excessive impacts of market volatility and other transactions deployed.

In general, signed transactions are meant to be submitted immediately on receipt. However in some cases transactions are signed, but only intended for deployment when some trigger condition occurs, and until then are meant to be stored ready for deployment.

Possible triggers can include a particular transaction occurring, an asset or the transaction price ("gas fee") reaching a particular price, or some amount of time passing, among other events.

This requirement does not oblige Deployers to enable any specific instructions to be given, only to meet the expectations for services they explicitly provide, but see also Enable Configured Policies for Deployment

Audit Guidance

Ensure Delivery Capacity
Deployers SHOULD ensure delivery infrastructure has sufficient redundancy to avoid delays due to single points of failure.

Purpose: Ensure that deployments are resilient to transient failures and single points of failure

Audit Guidance

Requirements for Deploying Application Transactions

Re-verify Application Transactions
Deployers SHOULD re-verify bytecode correctness and access-control safety for Application Transactions before broadcast.

Purpose: To ensure that the code being deployed is as expected, and as reviewed for security.

If a Proxy Contract can be initialized multiple times, and if there is not strong Access Control on the capability to initialize the Contract, it exposes the Smart Contract System to malicious attack.

Audit Guidance

Implement Protected Delivery Paths
Deployers SHOULD enable protected delivery paths that limit the visibility of transactions before they are included in a block.

Purpose: Minimize exposure to Ordering Attacks

A transaction broadcast to a public mempool is visible to every participant on the network while it is pending, increasing the potential for Ordering Attacks.

Apprpriate mechanisms include submitting directly to a block producer, private relay or bundle endpoints, connections to a validator that bypass public transaction gossip, and encrypted or threshold-encrypted mempools. Raising gas or fee parameters is not a protected delivery path. Where a network does not make pending transactions publicly visible, this requirement is met by the network's design.

Best practice includes

See also Mitigate Timing Attacks, Surface Timing Attack Warnings, and Broadcast to Authorized RPC Nodes

Audit Guidance

Requirements for Stored Transactions

Stored Transactions are deployed when triggered by protocol events or requests, and can have protocol-imposed delays before they can be executed.

Secure Stored Transactions
Deployers MUST securely store signed transactions whose delivery is deferred, encrypted, with strong access control mechanisms

Purpose: Ensure that Stored transactions are only deployed as intended, and cannot be accessed and deployed maliciously or by accident

If a deferred transaction is sent for deployment at a time other than when the signer expects, it can lead to unexpected and harmful consequences.

Audit Guidance

Monitor Stored Transaction Deployment Triggers
Deployers MUST implement monitoring of triggers to deploy Stored transactions.

Purpose: Ensure Stored Transactions are deployed in a timely manner, once the deployment conditions are met

Audit Guidance

Allow Batching and Throttling
Deployers SHOULD provide a mechanism to batch or throttle transactions where this can save gas.

Purpose: Minimize Gas or Fees for deployment.

Audit Guidance

Indexer

Use Tamper-resistant Transaction Storage
Indexers MUST read transaction data from a tamper-resistant source.

Purpose: Ensure the Indexer presents accurate information

This can include reading the data directly from a blockchain node, or a database or other local storage mechanism, so long as it ensures the data the Indexer provides is reliable.

Audit Guidance

Index Successful Transactions
Indexers MUST accurately reference the block(s) that included a transaction it records

Purpose: Ensure the Indexer presents accurate information

Audit Guidance

Document Finality
Indexers SHOULD document the policy it uses to classify a transaction as finalized.

Purpose: Demonstrate the method used to determine finality for a given transaction, and understanding of network-specific finality

See also Index Transactions' Finality

If an Indexer identifies that an almost-identical transaction has been deployed multiple times (typically only changing the nonce), this information is also helpful.

Audit Guidance

Present Transactions Accurately
Indexers MUST accurately represent all transaction data it records.

Purpose: Prevent misleading information being used to make decisions

Any misleading representation of transaction data is a major security risk, that can lead to harmful decisions based on inaccurate data, whether through misapprehension or deliberate deception.

Audit Guidance

Index Transactions' Finality
Indexers SHOULD provide finalization status for transactions they record.

Purpose: Provide clarity on the likelihood of a transaction being reversed after being indexed as incorporated in a block

While for blockchains that have deterministic finalization this is typically straightforward, in many cases finalization is effectively optimistic, and the most accurate approach is to determine status based on re-organisation history.

Audit Guidance

Index Failed Transactions
Indexers SHOULD record relevant transactions that were deployed but not incorporated in a block, along with useful metadata.

Purpose: Help understand why transactions failed

Understanding why a deployed transaction was not accepted can inform future transaction construction.

Other than a Transaction failing to validate, there are many possible contributing factors to it not being included. Useful information in this situation could cover

Audit Guidance

References

[GSP]

"General Security and Privacy Guidelines", Ed. Joe D'Annolfo, Chaals Nevile, Blockchain Security Standards Council 2025. Available at https://specs.blockchainssc.org/gsp

[ERC-712]

"Typed structured data hashing and signing", Remco Bloemen (@Recmo), Leonid Logvinov (@LogvinovLeon), Jacob Evans (@dekz), Ethereum Foundation 2017. https://eips.ethereum.org/EIPS/eip-712

[ERC-7730]

"Structured Data Clear Signing Format", Ethereum ERC-7730 (draft). https://eips.ethereum.org/EIPS/eip-7730

Adoption of the format is promoted by the Clear Signing Initiative. https://clearsigning.org/

[WP-EB]

"Exponential Backoff", WikiPedia. https://en.wikipedia.org/wiki/Exponential_backoff

[RFC2119]

"Key words for use in RFCs to Indicate Requirement Levels", S. Bradner, IETF 1997. https://www.rfc-editor.org/rfc/rfc2119.html

[RFC8174]

"Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", B. Leiba, 2017. https://www.rfc-editor.org/rfc/rfc8174.html

Document Status and Feedback

This document is version 1 of the Blockchain Transaction Lifecycle Security Standard, developed by the Blockchain Security Standard Council (BSSC Inc.). It is intended as a new publication.

Without explicit written permission, you cannot share, modify, copy or distribute this document.

The BSSC requests feedback on this document. Feedback can be provided through the BSSC Contact page.

Disclaimer of Warranty and Liability

NO WARRANTIES: THIS SPECIFICATION IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, ACCURACY, COMPLETENESS AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL BSSC, ITS MEMBERS OR ITS CONTRIBUTORS BE LIABLE FOR ANY CLAIM, OR ANY DIRECT, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE SPECIFICATION.

THIRD PARTY RIGHTS: Without limiting the generality of the foregoing, BSSC ASSUMES NO RESPONSIBILITY TO COMPILE, CONFIRM, UPDATE OR MAKE PUBLIC ANY THIRD PARTY ASSERTIONS OF PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS THAT MIGHT NOW OR IN THE FUTURE BE INFRINGED BY AN IMPLEMENTATION OF THE SPECIFICATION IN ITS CURRENT, OR IN ANY FUTURE FORM. IF ANY SUCH RIGHTS ARE DESCRIBED ON THE SPECIFICATION, LICENSOR TAKES NO POSITION AS TO THE VALIDITY OR INVALIDITY OF SUCH ASSERTIONS, OR THAT ALL SUCH ASSERTIONS THAT HAVE OR MAY BE MADE ARE SO LISTED.