コンテンツへスキップ

DelegateSet

[Source]

Delegate permissions to another account to send transactions on your behalf. This transaction type can grant, change, or revoke permissions; it creates, modifies, or deletes a Delegate ledger entry accordingly.

PermissionDelegationV1_1 amendmentが必要です。 Loading...

Example DelegateSet JSON

{
    "TransactionType": "DelegateSet",
    "Account": "rw81qtsfF9rws4RbmYepf5394gp81TQv5Y",
    "Authorize": "r9GAKojMTyexqvy8DXFWYq63Mod5k5wnkT",
    "Fee": "1",
    "Flags": 0,
    "LastLedgerSequence": 4747822,
    "Permissions": [
        {
            "Permission": {
                "PermissionValue": "AccountDomainSet"
            }
        }
    ],
    "Sequence": 4747802
}
トランザクションの例を確認

DelegateSet Fields

In addition to the common fields, DelegateSet transactions use the following fields:

FieldRequired?JSON TypeInternal TypeDescription
AuthorizeYesString - AddressAccountIDThe account being granted permissions, also called the delegate.
PermissionsYesArrayArrayA list of up to 10 Permission objects each specifying a different permission granted to the delegate. The delegate's permissions are updated to match this set of permissions exactly. To revoke all permissions, use an empty array; this is only valid when a Delegate ledger entry already exists for the delegate.

If a Delegate ledger entry does not exist to record the granted permissions, this transaction creates one. If it already exists, the transaction updates the set of permissions to match the list in the transaction: any permissions not listed are revoked. If all permissions are revoked, the transaction deletes the Delegate ledger entry. An empty Permissions list is only valid for deleting an existing Delegate ledger entry; if no such entry exists, the transaction fails with tecNO_ENTRY.

Tip

If you want to delegate more than 10 permissions, consider using multi-signing instead.

Permission Objects

Each item in the Permissions array is an inner object with the following nested field:

FieldJSON TypeInternal TypeRequired?Description
PermissionValueString or NumberUInt32YesA permission to grant to the delegate, which can be either a transaction type or a granular permission. See Permission Values for a full list.

Error Cases

Besides errors that can occur for all transactions, DelegateSet transactions can result in the following transaction result codes:

Error CodeDescription
tecNO_ENTRYThe Permissions list is empty but no Delegate ledger entry exists for the delegate. An empty list is only valid for deleting an existing entry.
tecNO_TARGETThe account specified in the Authorize field does not exist in the ledger.
tecPSEUDO_ACCOUNTThe Authorize account is a pseudo-account.
temARRAY_TOO_LARGEThe Permissions list is too large. It cannot contain more than 10 entries.
temMALFORMEDThe transaction was invalid. For example:
  • The Authorize account is the same as the sender of the transaction
  • The Permissions list contains duplicate entries
  • One of the permissions can't be delegated. See: List of Non-Delegable Permissions.
temBAD_SIGNERDelegate is the same as Account.

See Also