> For the complete documentation index, see [llms.txt](https://hub.bsvblockchain.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hub.bsvblockchain.org/wiki/bitcoin-script-and-opcodes/script/complex-script-options.md).

# Complex Script Options

Transactions are mostly input and output to a number of standard scripts that cover 99% of transactional activity. A difference occurs in Bitcoin SV between ‘Standard’ and 'customized' (previously known as‘Non-Standard’) scripts for transaction inputs and outputs. The 'customized' scripts allow for complex scripts to be added to transactions containing additional functionality for the locking and redeeming process.

1. Standard scripts There are 5 standard scripts for Bitcoin SV:

* P2PK – Pay to Public Key
* P2PKH – Pay to Public Key Hash
* P2MS – Pay to MultiSignature
* P2SH – Pay to Script Hash (deprecated with the Genesis upgrade after Feb 4th 2020)
* OP\_RETURN – opcode able to contain data These scripts have been available as locking and redeeming scripts in Bitcoin.

1. Bitcoin SV Node Capability The Genesis upgrade introduced a number of consensus changes intended to enable Bitcoin to fulfil its original design as digitally programmable money. This includes lifting several scripting restrictions currently imposed by the network, thereby enabling users to create custom scripts. These changes enable the Bitcoin SV network to support a range of complex spending conditions and computational capabilities. Script's flexible nature allows outputs to be created that provide conditionality, enhanced security and computational possibilities. The use of customised scripts can extend BSV to provide tailored services for wallets, subnets and overlays in the BSV network.
2. Customised scripts Examples of customized scripts include:

* R Puzzle - use of the r component of a digital signature
* Rabin Signature - use of Rabin addresses and signatures (see Rabin Signatures)
* Multi Signature Accumulator - manage multi signature scenarios through conditional scripting insrtuctions. Non-standard or customised scripts need to be declared. A registration process is involved. A link with a specific Miner may need to be established through a Miner ID.

1. Other customised declarations can include:

* Public Key Infrastructure (Root Authority, Certificate Issuer, Certificates, Signatures) Where authenticating or verification information can be placed within a transaction.
* Use of customised Address Generation The creation of payment addresses as the transaction output within a script that is non-standard or customised.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hub.bsvblockchain.org/wiki/bitcoin-script-and-opcodes/script/complex-script-options.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
