Create, update, or delete a Sponsorship ledger entry on the XRP Ledger.
This transaction requires that you specify either the CounterpartySponsor or Sponsee, but not both.
(Requires the Sponsor amendment )
{
"TransactionType": "SponsorshipSet",
"Account": "rN7n7otQDd6FczFgLdlqtyMVrn3HMfXpf",
"Sponsee": "rfkDkFai4jUfCvAJiZ5Vm7XvvWjYvDqeYo",
"FeeAmount": "1000000",
"MaxFee": "1000",
"RemainingOwnerCount": 5,
"Fee": "12",
"Sequence": 42
}In addition to the common fields, SponsorshipSet transactions use the following fields:
| Field Name | JSON Type | Internal Type | Required? | Description |
|---|---|---|---|---|
CounterpartySponsor | String | AccountID | No | The sponsor associated with this relationship. This account also pays for the reserve of this entry. If this field is included, the Account is assumed to be the sponsee. |
FeeAmount | String | Amount | No | The remaining amount of XRP that the sponsor has provided for the sponsee to use for fees. This value replaces what is currently in the Sponsorship.FeeAmount field, if it exists, rather than adding to it. Raising FeeAmount deducts the additional XRP from the sponsor, while lowering it refunds the difference back to the sponsor. |
MaxFee | String | Amount | No | The maximum fee per transaction that will be sponsored. This prevents abuse or excessive draining of the sponsored fee pool. |
RemainingOwnerCount | Number | UInt32 | No | The remaining amount of reserves that the sponsor has provided for the sponsee to use. This value replaces what is currently in the Sponsorship.RemainingOwnerCount field, if it exists. |
Sponsee | String | AccountID | No | The sponsee associated with this relationship. If this field is included, the Account is assumed to be the sponsor. |
A sponsorship entry must keep at least some fee budget (FeeAmount) or reserve budget (RemainingOwnerCount). If you try to create or update the entry with neither, the transaction fails, because an empty entry still consumes an owner reserve while giving the sponsee nothing to draw on.
SponsorshipSet transactions support additional values in the Flags field, as follows:
| Flag Name | Hex Value | Decimal Value | Description |
|---|---|---|---|
tfSponsorshipSetRequireSignForFee | 0x00010000 | 65536 | Adds the restriction that every use of this sponsor for sponsoring fees requires a signature from the sponsor. |
tfSponsorshipClearRequireSignForFee | 0x00020000 | 131072 | Removes the restriction that every use of this sponsor for sponsoring fees requires a signature from the sponsor. |
tfSponsorshipSetRequireSignForReserve | 0x00040000 | 262144 | Adds the restriction that every use of this sponsor for sponsoring reserves requires a signature from the sponsor. |
tfSponsorshipClearRequireSignForReserve | 0x00080000 | 524288 | Removes the restriction that every use of this sponsor for sponsoring reserves requires a signature from the sponsor. |
tfDeleteObject | 0x00100000 | 1048576 | Deletes the Sponsorship ledger entry. When enabled, no other fields (except Sponsee and CounterpartySponsor) or flag-setting fields may be specified. Deleting returns any remaining XRP in FeeAmount to the sponsor's account. |
To delete a Sponsorship ledger entry, the sponsor or sponsee submits a SponsorshipSet transaction with the tfDeleteObject flag enabled. Any remaining XRP in FeeAmount is returned to the sponsor's account upon deletion.
Deleting the Sponsorship entry only removes the pre-funded fee and reserve arrangement between the sponsor and sponsee. Ledger entries that were previously created using sponsored reserves retain their Sponsor field and remain sponsored. To transfer or dissolve sponsorship for those existing ledger entries, use the SponsorshipTransfer transaction.
Besides errors that can occur for all transactions, SponsorshipSet transactions can result in the following transaction result codes:
| Error Code | Description |
|---|---|
tecNO_DST | The sponsor or sponsee account does not exist on the ledger. |
tecNO_ENTRY | The tfDeleteObject flag is enabled but the Sponsorship ledger entry does not exist. |
tecNO_PERMISSION | The transaction is not permitted. This can occur when:
|
tecUNFUNDED | The sponsor does not have sufficient XRP to fund the FeeAmount or to cover the reserve for the Sponsorship ledger entry. |
temBAD_AMOUNT | An amount field is invalid. This can occur when:
|
temINVALID_FLAG | The transaction has invalid flags. This can occur when:
|
temMALFORMED | The transaction is malformed. This can occur when:
|