threshold of its members sign. This guide uses the REST API to create a wallet with a 2-of-3 recovery quorum, add a 2-of-3 operational quorum, sign a transaction with it, and rotate quorum members. For the concept, see Quorum Signers.
The examples use an EVM wallet on base-sepolia with two quorums: a recovery quorum of email and phone members, and an operational quorum of three external wallets that signs the transaction. The same requests work on Solana and Stellar, with the Solana difference shown in Sign a Transaction with a Quorum.
Prerequisites
Enterprise feature. Contact us for access.
- API key: A server API key with the
wallets.create,wallets:transactions.create, andwallets:transactions.signscopes. In staging, all scopes are included by default. - Members: The signers that will form the quorum, from 2 to 10. Each member must be able to sign its own approval message. See Rules and Limits for the member types on each chain.
Create a Wallet with a Quorum Recovery Method
Add an entry withtype: "quorum" to recoveryMethods. Set threshold to the number of members that must sign, and list the members in members. Here, any 2 of the 3 members can recover the wallet and change its signers.
config.recoveryMethods with the locator that Crossmint assigned to it. Each member also has its own locator:
threshold members.
Add a Quorum as an Operational Signer
To require several approvals for day-to-day transactions, register the quorum as an operational signer with the register delegated key endpoint. Thesigner field takes the same quorum object:
threshold of its members approve, as in the next section. The quorum can act only after its registration succeeds. Its locator, for example quorum:9d41a7c2-5e3b-4c8f-a1d6-2b7e0f3c8a51, is listed with the wallet’s signers.
Sign a Transaction with a Quorum
These steps use the operational quorum from the previous section. Its members are external wallets, which sign approvals with their own keys.1
Create the transaction
Call the create transaction endpoint and set On Solana, also set On EVM and Stellar, signature requests work the same way: set
params.signer to the quorum’s locator. A member’s locator does not act for the quorum: members approve, they never create the transaction.approvingMembers to exactly threshold member locators. Only those members can approve:signer to the quorum’s locator.2
Sign each member's message
The response has one pending approval entry for the quorum. Its Each member signs its own
quorumApprovals object lists each member that can approve, with the message that member must sign. On EVM and Stellar, all members are listed. On Solana, only the members in approvingMembers are listed.message with its own key. Members sign independently and in any order. The messages can be different for each member type, so always sign the message from that member’s entry.3
Submit the member approvals
Call the approve transaction endpoint. Set After each approval,
approvals[].signer to the member’s own locator, never to the quorum’s locator. You can submit the members together, as below, or in separate requests as each member signs.quorumApprovals.remaining goes down by 1. If a member submits the same approval again, the request succeeds and changes nothing.4
Check the result
When
remaining reaches 0, the quorum entry moves to approvals.submitted and Crossmint broadcasts the transaction. Poll the get transaction endpoint until status is success or failed.Rotate a Quorum
You cannot change the members or the threshold of a quorum. To rotate them, add a new quorum and then remove the old one. The new quorum gets a new locator, and it can keep some of the old quorum’s members.Recovery Quorum
- Add the new quorum with the add recovery method endpoint.
- Remove the old quorum by its locator with the remove recovery method endpoint.
Operational Quorum
- Register the new quorum with the register delegated key endpoint.
- Remove the old quorum by its locator with the remove signer endpoint. See Remove a Signer.
Next Steps
Quorum Signers
Understand how m-of-n approval works on each chain
Manage Recovery Methods
Add or remove recovery methods on an existing wallet
Approve Transaction
Submit member approvals in the API playground

