GET /testnet/fixtures
GET

/v1/testnet/fixtures

What the simulation keeps alive on Testnet: live accounts, its tokens (tokens[]: name, currency, issuer, holders, amm, role — stablecoin | deep (the high-liquidity pool) | volatile (a thin pool, swung every round) | crowd — with a note saying what each does, and peg_usd on the stablecoin), its collections (collections[]: name, issuer, taxon, role blue-chip | drop, note, items), an NFT with offers, one of every ledger object, and a real transaction of each type (catalogue[]: id, kind, about, result, hash, and tx — the JSON it sent, without fee, sequence, expiry or signature, a working template for that variation) — start here

AuthNone — works without a key

Request

GEThttps://api.xrpl.to/v1/testnet/fixtures
curl 'https://api.xrpl.to/v1/testnet/fixtures'

Response

200Example response4 ms · just now · 8.9 KB · 261 lines
https://api.xrpl.to/v1/testnet/fixtures
{
  "success": true,
  "network_id": 1,
  "generated_at": "2026-09-21T07:23:05Z",
  "age_seconds": 510,
  "population": 434,
  "last_activity": [
    "the exchange paid out 11.83 XRP (tesSUCCESS)",
    "the exchange paid out 42.43 XRP (tesSUCCESS)",
    "the exchange paid out 34.68 XRP (tesSUCCESS)",
    "the exchange paid out 26.90 XRP (tesSUCCESS)",
    "the exchange paid out 49.81 XRP (tesSUCCESS)"
  ],
  "accounts": {
    "issuer": "rNuFETH1NSTxZQYmDvPWdMF8dD3FbTzbmP",
    "holders": [
      "rDKvxFRPLAiu1djgz5dQWCWPmax1pBp8Hj",
      "rGX3FJ5LX8rnmhtdf6M242UGoL14UGZ8P8",
      "rBFjhoL7HCTqURt8SgC7d1mW4XHBcEUp4i",
      "rBABiWtu7KBWxEtskyAECVA5HEatqN12uo",
      "rnaYXtLCjExjwFhH88D72masiNdu2E8fHz"
    ],
    "trader": "rDKvxFRPLAiu1djgz5dQWCWPmax1pBp8Hj",
    "population": 434,
    "busy": [
      "rNuFETH1NSTxZQYmDvPWdMF8dD3FbTzbmP",
      "rDKvxFRPLAiu1djgz5dQWCWPmax1pBp8Hj",
      "rGX3FJ5LX8rnmhtdf6M242UGoL14UGZ8P8",
      "rBFjhoL7HCTqURt8SgC7d1mW4XHBcEUp4i",
      "rGygZD1yGJA963vEQTtk1C7izVBygEe9xA"
    ]
  },
  "tokens": [
    {
      "name": "Testnet RLUSD",
      "currency": "524C555344000000000000000000000000000000",
      "issuer": "rNuFETH1NSTxZQYmDvPWdMF8dD3FbTzbmP",
      "holders": 114,
      "amm": "rEc17YM54zCGkzHfnNGtrp1dR31ACUYhep",
      "book": true,
      "peg_usd": 1,
      "role": "stablecoin",
      "note": "Pegged to one dollar in XRP; its issuer stands in the market with a ladder either side of the peg and defends the pool. Also pooled against the deep and the volatile token, with no XRP in those pools."
    },
    {
      "name": "Testnet Deep Pool",
      "currency": "4445455000000000000000000000000000000000",
      "issuer": "rBsTWpza7J6PRRhSzWZ9XhU5w65deaXv6M",
      "holders": 178,
      "amm": "rUU1ELMLU73U94U6w8DeQAikCtsvvKUUen",
      "book": true,
      "role": "deep",
      "note": "The high-liquidity pool: kept at thousands of XRP by the funder, a third of the bots trade it, and it gains holders every hour — the token every example points at."
    },
    {
      "name": "Testnet Volatile Pool",
      "currency": "564F4C5400000000000000000000000000000000",
      "issuer": "rUfzQ6XdytZ2GBbZoQTUBjnda3fVDBwai2",
      "holders": 14,
      "amm": "rGkpj9FdtyKiB324xqDq6Z8kRDaGqTuMfi",
      "book": true,
      "role": "volatile",
      "note": "A thin pool that a whipsaw account swings by a tenth to a quarter every round, so its price moves the way a small token's does."
    },
    {
      "name": "Testnet Transfer Fee",
      "currency": "4645450000000000000000000000000000000000",
      "issuer": "rPNDwfiYyy5GzwDw6kSFCXQ6YqEbwh7iU",
      "holders": 13,
      "amm": "rD4sTeREac5JMZrABWyg9mJHCA3yZppz3N",
      "book": true,
      "role": "fee",
      "note": "A 2% transfer fee (TransferRate 1020000000): a payment between holders delivers less than it sends, and SendMax matters."
    },
    {
      "name": "Testnet Auth Only",
      "currency": "4155544800000000000000000000000000000000",
      "issuer": "rBVe8EUMPFhM9XHfSD4Pac8BLgqnCZit2o",
      "holders": 12,
      "amm": null,
      "book": true,
      "role": "auth",
      "note": "RequireAuth: a trust line to it is worthless until the issuer authorises it, and a payment to an unauthorised line is tecPATH_DRY. No pool."
    }
  ],
  "collections": [
    {
      "name": "Testnet Blue Chips",
      "issuer": "rDtb4JAujk7zJPFVtGaJQpbc7HzZG5frbs",
      "taxon": 7724,
      "role": "blue-chip",
      "note": "The collection people trade: it grows a few pieces a run to fifty, and its pieces are listed, bid on and sold every round.",
      "items": 43
    },
    {
      "name": "Testnet Drop 1",
      "issuer": "rMUz9w78n3mCYmhRJYJ8PeLwwFAaomRTia",
      "taxon": 8226,
      "role": "drop",
      "note": "A small drop: a few pieces minted at once, with sell and buy offers standing.",
      "items": 1
    },
    {
      "name": "Testnet Drop 2",
      "issuer": "rpGBQPBSZZaGSSVUmaWhJkb8mwPjwVDww5",
      "taxon": 9265,
      "role": "drop",
      "note": "A small drop: a few pieces minted at once, with sell and buy offers standing.",
      "items": 0
    },
    {
      "name": "Testnet Drop 3",
      "issuer": "rE8UwPqik3TJ2XYYvAhnX8rRGBosfCqFeC",
      "taxon": 7278,
      "role": "drop",
      "note": "A small drop: a few pieces minted at once, with sell and buy offers standing.",
      "items": 0
    },
    {
      "name": "Testnet Drop 4",
      "issuer": "rBVcZZXiRQdo53QuhSAFWm9yY2diq3VUgK",
      "taxon": 2765,
      "role": "drop",
      "note": "A small drop: a few pieces minted at once, with sell and buy offers standing.",
      "items": 2
    }
  ],
  "nft": {
    "id": "000800008D636973A12A3F882DB44909B25D79598201ADBF12F03425013E526E",
    "issuer": "rDtb4JAujk7zJPFVtGaJQpbc7HzZG5frbs",
    "owner": "rDtb4JAujk7zJPFVtGaJQpbc7HzZG5frbs",
    "taxon": 7724,
    "sell_offer": "415D09111CA562109B279A433C6BDFA60B504426B0D2358ACD276C442E3EE0A7",
    "buy_offer": null
  },
  "objects": {
    "check": {
      "id": "BA0875E01603DAAF3DDB0B5222A0AE4B607DA101CD8A24935CD733C60BE39F7C"
    },
    "credential": {
      "subject": "rEtXsBGhbnBVa1JkReatKVhDtKAspr9oPP",
      "issuer": "rPdbwX6D42M1av6sSZuBaZXYzMQVaTxeot",
      "credential_type": "4B5943"
    },
    "deposit_preauth": {
      "owner": "rPdbwX6D42M1av6sSZuBaZXYzMQVaTxeot",
      "authorized": "rEtXsBGhbnBVa1JkReatKVhDtKAspr9oPP"
    },
    "did": {
      "account": "rPdbwX6D42M1av6sSZuBaZXYzMQVaTxeot"
    },
    "escrow": {
      "owner": "rPdbwX6D42M1av6sSZuBaZXYzMQVaTxeot",
      "seq": 20868915
    },
    "mpt_issuance": {
      "id": "013E6F3DF83E42C2DF48562F7886C8C69ECABD3C36A4642A",
      "holder": "rEtXsBGhbnBVa1JkReatKVhDtKAspr9oPP"
    },
    "nft_offer": {
      "id": "EE3BC349EA20732C3C687A0451709B525AD8FCE7AAF17A0D7B6E605373FB04E5"
    },
    "nft_page": {
      "id": "F83E42C2DF48562F7886C8C69ECABD3C36A4642AFFFFFFFFFFFFFFFFFFFFFFFF"
    },
    "offer": {
      "account": "rPdbwX6D42M1av6sSZuBaZXYzMQVaTxeot",
      "seq": 20868934
    },
    "oracle": {
      "account": "rPdbwX6D42M1av6sSZuBaZXYzMQVaTxeot",
      "oracle_document_id": 1
    },
    "payment_channel": {
      "id": "765FB68CB5FC5746B1CEBCD3B6C17B8A5D52165F65BAA1DEA0F2E255AC73794C"
    },
    "permissioned_domain": {
      "account": "rPdbwX6D42M1av6sSZuBaZXYzMQVaTxeot",
      "seq": 20868921
    },
    "signer_list": {
      "id": "BD35965486731B0518B55F9978922CB46FE58DC5515AFE67143856A6FFF714CC"
    },
    "ticket": {
      "account": "rPdbwX6D42M1av6sSZuBaZXYzMQVaTxeot",
      "ticket_seq": 20868917
    },
    "transaction": {
      "hash": "B8165B1E2DB6806656F91FFD13626BF9416B13E7CEB8E0C7A2816422A57A2B84",
      "ledger_index": 20928304
    }
  },
  "catalogue": [
    {
      "id": "account.delete",
      "kind": "AccountDelete",
      "about": "deleting an account and sending what is left to another",
      "result": "tesSUCCESS",
      "at": "2026-09-21T05:24:40.264894314+00:00",
      "hash": "433CF66974C1E84EC69D9D0617CBA64C6BF41E230D0916FA18E99A4EF299E382",
      "tx": {
        "TransactionType": "AccountDelete",
        "Account": "rpdVKbrhLoGGAXxok6dNsyjg3HZm8Gefw6",
        "Destination": "rLE6nH11zHm3hxkLEDF3mhTdgSsJbMhUwd",
        "DestinationTag": 3374
      }
    },
    {
      "id": "accountset.defaultripple",
      "kind": "AccountSet",
      "about": "asfDefaultRipple: an issuer letting its token move between holders",
      "result": "tesSUCCESS",
      "at": "2026-09-21T02:56:25.072633547+00:00",
      "hash": "1A39287C907E4B124B786443B36F7B50DDC885EA4BD1565F5D6301F65713C3B2",
      "tx": {
        "TransactionType": "AccountSet",
        "Account": "rGWmWibX2xdVVEouhEEtyzwAH4Gnty9F8y",
        "SetFlag": 8
      }
    },
    {
      "id": "accountset.depositauth",
      "kind": "AccountSet",
      "about": "asfDepositAuth: nothing arrives unless this account allowed it",
      "result": "tesSUCCESS",
      "at": "2026-09-21T02:56:53.933831061+00:00",
      "hash": "428C6BF3A25249E0399DBD63C376CE00C935E42B380DD743B5BC556D76C56E98",
      "tx": {
        "TransactionType": "AccountSet",
        "Account": "r9FaEeiZBNW3zqFYg4o4LvqZNisqQumsNF",
        "SetFlag": 9
      }
    },
    {
      "id": "accountset.disallowxrp",
      "kind": "AccountSet",
      "about": "asfDisallowXRP: the advisory flag that says do not send XRP here",
      "result": "tesSUCCESS",
      "at": "2026-09-21T02:56:46.436168550+00:00",
      "hash": "42F725FFBF8347D4311FEEED11DB04464A06D484C116EE1BC0B4303A60752CE4",
      "tx": {
        "TransactionType": "AccountSet",
        "Account": "rGT4XLD4mAjNmzq49v9xkivcJG1YnWGUVF",
        "SetFlag": 3
      }
    },
    {
      "id": "accountset.domain",
      "kind": "AccountSet",
      "about": "setting the Domain field, which is how an account claims a website",
      "result": "tesSUCCESS",
      "at": "2026-09-21T02:56:11.218928257+00:00",
      "hash": "B712BB0EA99743D6155E94A77A077F794C109FC3C634F9A6C898F427F0F68224",
      "tx": {
        "TransactionType": "AccountSet",
        "Account": "rDLtHK4ysCDyKSzvXjfxeyLW5GwfPUdrN8",
        "Domain": "7472616465722d31332e6578616d706c65"
      }
    }
  ]
}

Long arrays and strings are shortened in the example; Send request for the full answer.

Shapeas documented
{
  network_id,
  generated_at,
  age_seconds,
  population,
  accounts: { issuer, holders[], trader, busy[] },
  tokens[],
  nft,
  objects,
  catalogue[]
}

What it does

What the simulation keeps alive on Testnet: live accounts, its tokens (tokens[]: name, currency, issuer, holders, amm, role — stablecoin | deep (the high-liquidity pool) | volatile (a thin pool, swung every round) | crowd — with a note saying what each does, and peg_usd on the stablecoin), its collections (collections[]: name, issuer, taxon, role blue-chip | drop, note, items), an NFT with offers, one of every ledger object, and a real transaction of each type (catalogue[]: id, kind, about, result, hash, and tx — the JSON it sent, without fee, sequence, expiry or signature, a working template for that variation) — start here

Notes
Rebuilt every few minutes by the simulation; age_seconds past a few minutes means Testnet was reset and it is catching up.
Start at GET /v1/testnet/fixtures: it names live accounts, a busy token, an NFT with offers and one of every ledger object that xrpl.to keeps alive on Testnet, plus a real transaction of every type. Testnet resets without warning; the data is rebuilt from the chain within minutes, and only objects touched since count. Open the Testnet sandbox →
OpenAPI