Transactions
Sequencer transactions are Kernel-compatible. Clients assemble the full transaction locally, gather signatures, and then ask the Sequencer to verify and relay it to the network.
Fetch payment information
When transferring to another Sequencer user or multisig group, obtain their one-time payment information first. Withdrawals that target Kernel addresses do not require this step.
Endpoint URL
POST https://api.mixin.one/safe/keys
Payload
[{
"receivers": ["USER-1-UUID", "USER-2-UUID"],
"index": 3,
"hint": "UNIQUE-UUID"
}]
{
"data": [
{
"mask": "KERNEL-MASK-KEY",
"keys": ["KERNEL-PUBLIC-KEYS", "KERNEL-PUBLIC-KEYS"]
}
]
}
Verify transaction structure
Submit the constructed raw transaction to Sequencer to validate its format. The response includes view-key signatures aligned with each input to help you complete the final signature pass.
Endpoint URL
POST https://api.mixin.one/safe/transaction/requests
Payload
[{
"request_id": "UNIQUE-UUID",
"raw": "KERNEL-RAW-TRANSACTION"
}]
{
"data": [
{
"request_id": "UUID-REQUEST",
"transaction_hash": "KERNEL-HASH",
"asset_id": "UUID-ASSET",
"kernel_asset_id": "KERNEL-ASSET-HASH",
"amount": "NUMBER",
"senders_hash": "SENDERS-HASH",
"senders_threshold": 1,
"senders": ["UUID-USER-1", "UUID-USER-2"],
"signers": ["UUID-USER-1", "UUID-USER-2"],
"extra": "",
"state": "signed or spent",
"raw_transaction": "",
"created_at": "RFC3339NANO",
"updated_at": "RFC3339NANO",
"inscription_hash": "INSCRIPTION-HASH",
"receivers": [
{
"members": ["UUID-USER-1", "UUID-USER-2"],
"members_hash": "MEMBERS-HASH",
"threshold": 1
},
],
"views":[
{
"destination": "ADDRESS",
"tag": "TAG",
"withdrawal_hash": "WITHDRAWAL-HASH"
}
]
},
]
}
Broadcast the transaction
After attaching your own Ed25519 signatures, push the final transaction back to Sequencer so it can relay it to the mainnet and keep the index in sync.
Endpoint URL
POST https://api.mixin.one/safe/transaction
Payload
[{
"request_id": "UNIQUE-UUID",
"raw": "KERNEL-RAW-TRANSACTION"
}]
{
"data": [
{
"request_id": "UUID-REQUEST",
"transaction_hash": "KERNEL-HASH",
"asset_id": "UUID-ASSET",
"kernel_asset_id": "KERNEL-ASSET-HASH",
"amount": "NUMBER",
"senders_hash": "SENDERS-HASH",
"senders_threshold": 1,
"senders": ["UUID-USER-1", "UUID-USER-2"],
"signers": ["UUID-USER-1", "UUID-USER-2"],
"extra": "",
"state": "signed or spent",
"raw_transaction": "",
"created_at": "RFC3339NANO",
"updated_at": "RFC3339NANO",
"inscription_hash": "INSCRIPTION-HASH",
"receivers": [
{
"members": ["UUID-USER-1", "UUID-USER-2"],
"members_hash": "MEMBERS-HASH",
"threshold": 1
},
],
"views":[
{
"destination": "ADDRESS",
"tag": "TAG",
"withdrawal_hash": "WITHDRAWAL-HASH"
}
]
},
]
}
Avoid broadcasting directly to the Kernel RPC: doing so prevents Sequencer from indexing the transaction and breaks downstream queries.
Query transaction status
Look up the state of a transaction by its request UUID after broadcasting.
Endpoint URL
GET https://api.mixin.one/safe/transactions/:id
{
"data": {
"request_id": "UUID-REQUEST",
"transaction_hash": "KERNEL-HASH",
"asset": "KERNEL-ASSET-HASH",
"amount": "NUMBER",
"senders_hash": "SENDERS-HASH",
"senders_threshold": 1,
"senders": ["UUID-USER-1", "UUID-USER-2"],
"signers": ["UUID-USER-1", "UUID-USER-2"],
"extra": "",
"state": "signed or spent",
"raw_transaction": "",
"created_at": "RFC3339NANO",
"updated_at": "RFC3339NANO",
"snapshot_hash": "SNAPSHOT-HASH",
"snapshot_at": "RFC3339NANO",
"receivers": [
{
"members": ["UUID-USER-1", "UUID-USER-2"],
"members_hash": "MEMBERS-HASH",
"threshold": 1
},
],
"views":[
{
"destination": "ADDRESS",
"tag": "TAG",
"withdrawal_hash": "WITHDRAWAL-HASH"
}
]
}
}