Configuring Accounts
There are three basic account configurations on the XRP Ledger.
Each of these accounts has different operational and security requirements for their function. You can start by configuring special behaviors that support the use case for each.
You can use the Account Configurator to create new accounts on Testnet or Devnet and try out different permissions and configurations. You can also get information about accounts on Mainnet and see their real-time settings.
Holder
To configure an account that is essentially going to hold and spend value on the XRPL, you can use the default settings that come with a new account. No special configuration is required.
Exchanger
If the primary purpose of an account is to facilitate exchange of value between third parties, you will likely start with these four settings:
Flag | Description |
---|---|
defaultRipple | Allow rippling on trust lines by default. Rippling is necessary in order for accounts to trade tokens you exchange with third-party accounts. See Rippling. |
disallowIncomingNFTokenOffer | Prevent other accounts from sending NFT buy or sell offers to this account. This avoids unsolicited offers unrelated to the primary purpose of the exchanger account. See Trading NFTs. |
disallowIncomingPayChan | Prevent other accounts from creating payment channels to this account. While you might want to create payment channels to other accounts yourself, you typically wouldn't want other accounts to create a payment channel to an exchange account. See Payment Channels. |
requireDestinationTag | Require that all incoming payments have a destination tag. Destination tags provide a more lightweight mechanism for sending payments to a specific customer at a general receiver account. See Source and Destination Tags. |
Issuer
An account intended for issuing tokens requires configuration of both fields and flags in the Account
object.
Issuer Fields
Field | Description |
---|---|
Domain | The domain is the URL to the server where you serve the xrp-ledger.toml file. It is recommended that you serve a human-readable website from the same domain as the xrp-ledger.toml file. The website can provide further information about your identity and how you use the XRP Ledger, which helps to build trust toward you and your services. See Domain. |
TransferRate | The TransferRate value specifies a fee to charge whenever counterparties transfer the currency you issue. The value is sent in 1 billion units. For example, 1200000000 represents a transfer fee of 20%. Note that the values 0 and 1000000000 represent the default (no fee); if you explicitly set either value, the value is not stored, but assumed. See Transfer Fees. |
TickSize | The TickSize value truncates the number of significant digits in the exchange rate of an offer when it gets placed in an order book. See TickSize. |
Signers
Multi-signing in the XRP Ledger is a method of authorizing transactions by using a combination of multiple secret keys. You create a list of signer accounts. Each signer account has a weight that represents its relative authority. The signer quorum represents the minimum weight total required to authorize a transaction. For example, if Ashad and Betty each have a signer weight of 1, Ceresia has a signer weight of 2, and the signer quorum is 3, Ashad and Ceresia can approve a transaction (weight total of 3), Betty and Ceresia can approve a transaction (weight total of 3), but Ashad and Betty cannot approve a transaction on their own (their combined signer weight is 2, 1 less than the required signer weight). See Multi-Signing.
Issuer Flags
Flag | Description |
---|---|
defaultRipple | Allow rippling on trust lines by default. Rippling is necessary in order for accounts to trade tokens you issue through this account. See Rippling. |
depositAuth | Deposit Authorization prevents unauthorized third parties from sending you payments. See Deposit Authorization. |
disallowIncomingCheck | Prevent other accounts from sending checks to this account. See Checks. |
disallowIncomingNFTokenOffer | Prevent other accounts from sending NFT buy or sell offers to this account. This avoids unsolicited offers unrelated to the primary purpose of the exchanger account. See Trading NFTs. |
disallowIncomingPayChan | Prevent other accounts from creating payment channels to this account. While you might want to create payment channels to other accounts yourself, you typically wouldn't want other accounts to create a payment channel to an exchange account. See Payment Channels. |
disallowIncomingXRP | Prevent other accounts from sending XRP to this account. (This is advisory, and not enforced by the protocol). See Direct XRP Payments. |
Other Configuration Flags
All of the configuration flags can be helpful for specific use cases. The following are the account configuration flags not used in the standard Holder, Exchanger, and Issuer configurations.
Flag | Description |
---|---|
allowTrustLineClawback | Allow account to claw back tokens it has issued. See Clawing Back Tokens. |
disableMasterKey | Disallow use of the master key pair. Can only be enabled if the account has configured another way to sign transactions, such as a regular key or a signer list. See Master Key Pair. |
disallowIncomingTrustLine | Block incoming trust lines. See Trust Lines. |
globalFreeze | Freeze all tokens issued by this account. See Global Freeze. |
noFreeze | Permanently remove the ability to freeze individual trust lines or end a global freeze. See Freezing Tokens. |
requireAuthorization | Requires authorized trust lines for other accounts to hold tokens issued by this account. See Authorized Trust Lines. |
Using the Account Configurator
You can download a copy of the Account Configurator from the _code_samples
directory.
Expand the archive and open account_configurator.html
in a browser window.
Getting Account Information
You can use the Account Configurator to view information about accounts on Mainnet, Testnet, and Devnet.
To get Account information:
- Choose the account's ledger instance (Mainnet, Testnet or Devnet).
- Enter the account number in the Account field.
- Click Get Account Info.
The response is displayed in the Results field.
Getting a New Account
You can create sandbox accounts on Testnet or Devnet. To create an account on Mainnet, see Creating Accounts.
To get a new Account:
- Choose the account's ledger instance (Testnet or Devnet).
- Click Get New Account.
Be sure to capture the Seed value for your new account so that you can easily retrieve it.
Getting an Account from Its Seed
You can reload information for an existing account based on its seed value.
To get an account from its seed:
- Choose the account's ledger instance (Testnet or Devnet).
- Enter the value in the Seed field.
- Click Get Account From Seed.
Configuring a Holder Account
A Holder account requires no configuration (default settings). If the account previously had configuration changes, you can revert them and return the account to default status.
To configure a Holder account:
- Choose the account's ledger instance (Testnet or Devnet).
- Click Get New Account or:
- Enter an existing seed value in the Seed field.
- Click Get Account From Seed.
- Choose the Holder Account Configuration Template.
- Click Configure Account.
If the account has never been configured, the response in the Results field is identical to the original account information, less the nominal transaction fee.
Configuring an Exchanger Account
The standard Exchanger account configuration requires only four flags.
To configure an Exchanger account:
- Choose the account's ledger instance (Testnet or Devnet).
- Click Get New Account or:
- Enter an existing seed value in the Seed field.
- Click Get Account From Seed.
- Choose the Exchanger Account Configuration Template. The configuration flag checkboxes update with the 4 standard configuration choices. You can choose more or fewer configuration settings to customize the account to your needs.
- Click Configure Account.
Configuring an Issuer Account
Configure an Issuer account by filling in additional fields and selecting flags that serve your needs.
To configure an Issuer account:
- Choose the account's ledger instance (Testnet or Devnet).
- Click Get New Account or:
- Enter an existing seed value in the Seed field.
- Click Get Account From Seed.
- Choose the Issuer Account Configuration Template. The configuration flag checkboxes update with the 6 standard configuration choices. You can choose more or fewer configuration settings to customize the account to your needs.
- Enter the Domain, a URL to the server where your
xrp-ledger.toml
resides. Note that you enter a human readable URL, which is converted to a hexidecimal string when you get the account information. If you want to reconfigure the account, you'll need to re-enter the Domain URL. - Enter the Transfer Rate, a percentage fee to charge whenever counterparties transfer the currency you issue.
- Enter the Tick Size, which truncates the number of significant digits in the exchange.
- If you choose to include signers, this example module requires that you add valid account IDs in Signer1 Account, Signer2 Account, and Signer3 Account, a Signer Weight for each, and a Signer Quorum value.
- Click Configure Account.
Removing Signers
Click Remove Signers to remove all signers for the current account.