
Check a token's flags first
4 minDifficulty Checked 2026-11-10- Read the issuer's account_flags before you add a trust line.
- allowTrustLineClawback true means the issuer can claw back, and always will be able to.
- noFreeze true rules out single-holder freezes and clawback, not a global freeze.
Before you add a trust line, ask three questions about the issuer:
- Can it take my tokens back? Look for clawback.
- Can it freeze me? Look for No Freeze.
- Is anything frozen right now? Look for a global freeze, and for a freeze on your own line.
Most explorers show these settings on the issuer's account page. This table reads them:
| What you see | What it means for you |
|---|---|
| Clawback allowed | The issuer can take tokens back from any holder. This can never be switched off. |
| No Freeze on | No single-holder freezes and no clawback. A global freeze is still possible, and could never be lifted. |
| No Freeze off | The issuer can freeze your line at any time. |
| Global Freeze on | Every holder is frozen right now. You can send the token only back to the issuer. |
| Require Auth on | The issuer must approve your line before you can hold the token. |
No setting is good or bad on its own. Some jurisdictions require issuers to be able to recover funds, which is why clawback exists. An issuer that wants its token to act like cash between holders can set No Freeze.
The point is to know before you hold, not after.
Issuer flags. Call account_info on the issuer:
{ "method": "account_info", "params": [{ "account": "r...issuer", "ledger_index": "validated" }] }The result has an account_flags object of booleans. rippled includes allowTrustLineClawback there, next to the fields in the docs table. The raw bits are in account_data.Flags:
account_flags field | Ledger flag | Hex |
|---|---|---|
allowTrustLineClawback | lsfAllowTrustLineClawback | 0x80000000 |
globalFreeze | lsfGlobalFreeze | 0x00400000 |
noFreeze | lsfNoFreeze | 0x00200000 |
requireAuthorization | lsfRequireAuth | 0x00040000 |
Your line. Call account_lines with your address as account and the issuer as peer. Each line reports flags from your point of view:
freeze_peer: truemeans the issuer froze the line.freeze: truemeans you did.- rippled also returns
deep_freezeanddeep_freeze_peerwhen a deep freeze is set.
You can also read the RippleState entry with ledger_entry and test the issuer's side: lsfLowFreeze or lsfHighFreeze, and lsfLowDeepFreeze (0x02000000) or lsfHighDeepFreeze (0x04000000). The low account is the one whose address sorts lower numerically.
Pools. amm_info returns asset_frozen and asset2_frozen for each token in a pool.
Related: Checking a token before you trust it.
- account_infoRead 2026-11-10
- account_linesRead 2026-11-10
- AccountRootRead 2026-11-10
- RippleStateRead 2026-11-10
- amm_infoRead 2026-11-10
- Freezing TokensRead 2026-11-10
- rippled source: AccountInfo.cpp (account_flags)Read 2026-11-10
- rippled source: AccountLines.cpp (deep_freeze fields)Read 2026-11-10
- XLS-39: Clawback SupportRead 2026-11-10
