{
 "issuer": "Frederick & Sons",
 "url": "https://frederickandsons.xyz",
 "description": "Machine-callable cryptographic attestations. Each is INDEPENDENTLY verifiable \u2014 you do not have to trust our word. Fetch this, check the signatures yourself.",
 "attestations": [
  {
   "id": "wallet-ownership",
   "type": "xrpl-account-control",
   "algorithm": "ed25519",
   "statement": "Frederick & Sons wallet-ownership attestation. The XRPL account rJRUQHSoA63wpkv1bWzykNnRdBewyAtPNU is our official checkout receive address for XRP and RLUSD. Issued 2026-06-13. Verify the signature against this account's on-ledger SigningPubKey at xrpscan.com/account/rJRUQHSoA63wpkv1bWzykNnRdBewyAtPNU.",
   "account": "rJRUQHSoA63wpkv1bWzykNnRdBewyAtPNU",
   "public_key": "ED6CDC6C71F432A9FDC159F3B75502A701A279D500BC3BD28B44720F352AC8728F",
   "signature": "795D95E6E5E7C7E717C0D3E3D38F114A151F014BF58E90CD4B88B1AF4DAACFA4A9493A1F377287EA92B0EBFF46636829D3234609FE4DBAC54A79915844A6B404",
   "message_hex": "46726564657269636b202620536f6e732077616c6c65742d6f776e657273686970206174746573746174696f6e2e20546865205852504c206163636f756e7420724a52555148536f41363377706b763162577a796b4e6e5264426577794174504e55206973206f7572206f6666696369616c20636865636b6f75742072656365697665206164647265737320666f722058525020616e6420524c5553442e2049737375656420323032362d30362d31332e2056657269667920746865207369676e617475726520616761696e73742074686973206163636f756e742773206f6e2d6c6564676572205369676e696e675075624b6579206174207872707363616e2e636f6d2f6163636f756e742f724a52555148536f41363377706b763162577a796b4e6e5264426577794174504e552e",
   "verify": {
    "how": "Verify the ed25519 signature over message_hex using public_key, then confirm that public_key equals this account's on-ledger SigningPubKey (from transactions SENT BY the account). Both holding proves the operator controls the checkout wallet.",
    "independent_source": "https://xrpscan.com/account/rJRUQHSoA63wpkv1bWzykNnRdBewyAtPNU",
    "notes": "Confirmed: this public_key equals the SigningPubKey on this account's own TrustSet transactions on the XRP Ledger (view at xrpscan.com/account/rJRUQHSoA63wpkv1bWzykNnRdBewyAtPNU \u2014 look at transactions SENT BY this account, not incoming payments). The signature validates over message_hex with that key. Together: proof the operator controls this wallet."
   }
  },
  {
   "id": "fifty50-attribution-signing-key",
   "type": "signing-key-publication",
   "algorithm": "ed25519",
   "statement": "Frederick & Sons publishes this ed25519 public key as the signing key for Fifty50 equity-attribution results. Every finalized split returned by the Fifty50 /attribution API is signed over the partnership, model version, and each partner's share (canonical scheme canonical_result_bytes/v1). Verify any signed split against this key, offline, with our standalone verifier \u2014 no Fifty50 install, nothing phoning home.",
   "public_key": "0747a15b80a069bfb86f427f86cc987f086560606eda6379da3bf2ce04fd0b1e",
   "key_encoding": "raw-ed25519-hex",
   "signed_scheme": "canonical_result_bytes/v1",
   "verify": {
    "how": "Save a Fifty50 /attribution response to a JSON file and run verify_attribution_signature.py; it recomputes the canonical bytes and checks the signature against the response's public_key. VALID means the split is authentic and unaltered. Compare that public_key to the value published here to confirm the key is ours.",
    "verifier": "https://frederickandsons.xyz/verify/verify_attribution_signature.py",
    "audit_chain_verifier": "https://frederickandsons.xyz/verify/verify_audit_chain.py",
    "human_page": "https://frederickandsons.xyz/trust",
    "notes": "The trust anchor for this key is publication (here and on /trust) AND an on-ledger cross-signature: attestation 'fifty50-attribution-key-operator-binding' has the XRPL checkout wallet (rJRUQHSoA63wpkv1bWzykNnRdBewyAtPNU) sign a statement binding this key, so it inherits the wallet's on-ledger root of trust. The standalone verifier embeds no key of its own \u2014 it reads public_key from the signed result, so YOU compare that value to this published one."
   }
  },
  {
   "id": "fifty50-attribution-key-operator-binding",
   "type": "xrpl-account-attestation",
   "algorithm": "ed25519",
   "statement": "Frederick & Sons operator attestation. The XRPL account rJRUQHSoA63wpkv1bWzykNnRdBewyAtPNU (our checkout wallet) attests that ed25519 public key 0747a15b80a069bfb86f427f86cc987f086560606eda6379da3bf2ce04fd0b1e is the Fifty50 attribution-result signing key. Issued 2026-07-09. Verify this signature against this account's on-ledger SigningPubKey at xrpscan.com/account/rJRUQHSoA63wpkv1bWzykNnRdBewyAtPNU.",
   "account": "rJRUQHSoA63wpkv1bWzykNnRdBewyAtPNU",
   "attests_public_key": "0747a15b80a069bfb86f427f86cc987f086560606eda6379da3bf2ce04fd0b1e",
   "public_key": "ED6CDC6C71F432A9FDC159F3B75502A701A279D500BC3BD28B44720F352AC8728F",
   "signature": "9171B60C7D7FC50F630823A99DE10677E8ADE5A049FDB28AF294FF9A9C4D897CF1252E7CC75FFFA5352CE5BF167F03CA0049E08DC33683322679D9AB3572DE04",
   "message_hex": "46726564657269636b202620536f6e73206f70657261746f72206174746573746174696f6e2e20546865205852504c206163636f756e7420724a52555148536f41363377706b763162577a796b4e6e5264426577794174504e5520286f757220636865636b6f75742077616c6c657429206174746573747320746861742065643235353139207075626c6963206b65792030373437613135623830613036396266623836663432376638366363393837663038363536303630366564613633373964613362663263653034666430623165206973207468652046696674793530206174747269627574696f6e2d726573756c74207369676e696e67206b65792e2049737375656420323032362d30372d30392e205665726966792074686973207369676e617475726520616761696e73742074686973206163636f756e742773206f6e2d6c6564676572205369676e696e675075624b6579206174207872707363616e2e636f6d2f6163636f756e742f724a52555148536f41363377706b763162577a796b4e6e5264426577794174504e552e",
   "verify": {
    "how": "Verify the ed25519 signature over message_hex using public_key, then confirm public_key equals this account's on-ledger SigningPubKey (from transactions SENT BY the account). Both holding proves the operator that controls the checkout wallet vouches for the Fifty50 attribution signing key (attests_public_key) \u2014 so that key inherits the wallet's on-ledger root of trust.",
    "independent_source": "https://xrpscan.com/account/rJRUQHSoA63wpkv1bWzykNnRdBewyAtPNU",
    "notes": "The bound key (attests_public_key) is the same key published as attestation 'fifty50-attribution-signing-key' and on /trust, and used to sign every Fifty50 /attribution result. If the site were tampered to swap the attribution key, this signature would no longer verify \u2014 an attacker cannot forge it without the checkout wallet's private key."
   }
  }
 ],
 "provenance": "https://frederickandsons.xyz/store/provenance.html",
 "scope_note": "This surface covers wallet-ownership, the Fifty50 attribution signing key, and module-provenance attestations, which exist and are signed today. Per-settlement on-chain receipt verification (Sentinel) is roadmap \u2014 we will not publish a verify endpoint for data that isn't real yet."
}
