PaymentMessage
Payment message delivered from sender to recipient. The `transaction`
field carries a base64-encoded Atomic BEEF blob (BRC-95). For payments
containing multiple outputs each output MUST carry its own
derivationSuffix and outputIndex so the recipient can recover the
correct P2PKH private key for each UTXO.
- type
object- description
Payment message delivered from sender to recipient. The `transaction`
field carries a base64-encoded Atomic BEEF blob (BRC-95). For payments
containing multiple outputs each output MUST carry its own
derivationSuffix and outputIndex so the recipient can recover the
correct P2PKH private key for each UTXO.
- required
3 items
derivationPrefixderivationSuffixtransaction
- properties
5 fields
- derivationPrefix
3 fields
- type
string- description
Payment-wide random nonce (base64-encoded, BRC-29 §3).
Uniquely identifies this payment across all outputs.
- example
3q2+7w==
- derivationSuffix
3 fields
- type
string- description
UTXO-specific random nonce (base64-encoded).
Uniquely identifies a single output within this payment.
For multi-output payments, use the `outputs` array instead.
- example
iMba2Q==
- transaction
3 fields
- type
string- description
Base64-encoded Atomic BEEF (BRC-95) containing the signed BSV
transaction with one or more P2PKH outputs for the recipient.
- example
<base64-encoded-BEEF>
- outputs
3 fields
- type
array- description
Present when multiple outputs belong to the same payment. Each
element describes one P2PKH output intended for the recipient.
When this array is absent, `derivationSuffix` at the top level
refers to output index 0.
- items
1 field
- $ref
#/components/schemas/PaymentOutputDescriptor
- senderIdentityKey
3 fields
- type
string- description
Hex-encoded compressed secp256k1 identity public key of the sender.
SHOULD be included so the recipient can verify key derivation and
include it in the internalizeAction remittance.
- example
02abc123...
PaymentOutputDescriptor
Describes one P2PKH output within a multi-output BRC-29 payment.
- type
object- description
Describes one P2PKH output within a multi-output BRC-29 payment.- required
2 items
outputIndexderivationSuffix
- properties
2 fields
- outputIndex
3 fields
- type
integer- minimum
0- description
Zero-based output index within the transaction.
- derivationSuffix
3 fields
- type
string- description
UTXO-specific nonce for this output (base64-encoded).- example
X9k4LA==
Brc42InvoiceNumber
BRC-42 invoice number used to derive the recipient's P2PKH key for each
output. Format: `2-3241645161d8-<derivationPrefix> <derivationSuffix>`
where:
- `2` = security level (BRC-43)
- `3241645161d8` = BRC-29 magic number
- derivationPrefix / derivationSuffix are the values from the message
- type
string- description
BRC-42 invoice number used to derive the recipient's P2PKH key for each
output. Format: `2-3241645161d8-<derivationPrefix> <derivationSuffix>`
where:
- `2` = security level (BRC-43)
- `3241645161d8` = BRC-29 magic number
- derivationPrefix / derivationSuffix are the values from the message
- pattern
^2-3241645161d8-[A-Za-z0-9+/=]+ [A-Za-z0-9+/=]+$- example
2-3241645161d8-3q2+7w== iMba2Q==
PaymentRemittance
Remittance object passed to BRC-100 `internalizeAction` for each
payment output. The recipient's wallet uses these fields to derive
the private key and credit the UTXO.
- type
object- description
Remittance object passed to BRC-100 `internalizeAction` for each
payment output. The recipient's wallet uses these fields to derive
the private key and credit the UTXO.
- required
3 items
derivationPrefixderivationSuffixsenderIdentityKey
- properties
3 fields
- derivationPrefix
3 fields
- type
string- description
Payment-wide derivation prefix (base64-encoded).- example
3q2+7w==
- derivationSuffix
3 fields
- type
string- description
UTXO-specific derivation suffix (base64-encoded).- example
iMba2Q==
- senderIdentityKey
3 fields
- type
string- description
Hex-encoded compressed secp256k1 identity public key of the sender.- example
02abc123...
InternalizeActionArgs
Arguments passed to the BRC-100 `internalizeAction` wallet method by
the recipient when processing an incoming BRC-29 payment.
- type
object- description
Arguments passed to the BRC-100 `internalizeAction` wallet method by
the recipient when processing an incoming BRC-29 payment.
- required
3 items
txoutputsdescription
- properties
3 fields
- tx
3 fields
- type
array- items
3 fields
- type
integer- minimum
0- maximum
255
- description
Raw Atomic BEEF bytes of the payment transaction.
- outputs
4 fields
- type
array- minItems
1- items
1 field
- $ref
#/components/schemas/InternalizeOutput
- description
One entry per P2PKH output intended for this recipient.
- description
3 fields
- type
string- description
Human-readable description of the payment.- example
Incoming BRC-29 payment
InternalizeOutput
- type
object- required
3 items
outputIndexprotocolpaymentRemittance
- properties
3 fields
- outputIndex
3 fields
- type
integer- minimum
0- description
Zero-based output index within the transaction.
- protocol
3 fields
- type
string- description
Protocol identifier understood by BRC-100 wallets.
- paymentRemittance
1 field
- $ref
#/components/schemas/PaymentRemittance
PaymentAck
Minimal response returned to the sender after the recipient has called
`internalizeAction`. BRC-29 does not mandate a wire format; this is
the conventional shape used by ts-sdk integrations.
- type
object- description
Minimal response returned to the sender after the recipient has called
`internalizeAction`. BRC-29 does not mandate a wire format; this is
the conventional shape used by ts-sdk integrations.
- properties
3 fields
- accepted
2 fields
- type
boolean- description
true if internalizeAction succeeded and the payment was credited.
- txid
3 fields
- type
string- description
Txid of the accepted transaction (hex, 64 characters).- pattern
^[0-9a-fA-F]{64}$
- error
2 fields
- type
string- description
Human-readable error message if `accepted` is false. Only present
on rejection.
LegacyPaymentEnvelope
**Deprecated.** The original BRC-8 extended-envelope format. New
integrations MUST NOT use this format; use `PaymentMessage` instead.
Documented here only for backwards-compatibility reference.
- type
object- deprecated
true- description
**Deprecated.** The original BRC-8 extended-envelope format. New
integrations MUST NOT use this format; use `PaymentMessage` instead.
Documented here only for backwards-compatibility reference.
- required
4 items
protocolsenderIdentityKeyderivationPrefixtransactions
- properties
4 fields
- protocol
2 fields
- type
string
- senderIdentityKey
2 fields
- type
string- description
Hex-encoded sender identity public key.
- derivationPrefix
2 fields
- type
string- description
Payment-wide derivation prefix.
- transactions
3 fields
- type
array- description
Array of extended BRC-8 transaction envelopes.- items
2 fields
- type
object- description
Extended BRC-8 transaction envelope (schema omitted — deprecated).