{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "walletconnect-sessions",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/walletconnect-sessions/",
  "collection": "ethereum",
  "title": "WalletConnect sessions: pairing a wallet with an application",
  "description": "Understand WalletConnect pairing, session permissions and later signing requests before treating a connection as authority over assets.",
  "aliases": [
    "WalletConnect session explained",
    "disconnect WalletConnect session"
  ],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T19:27:58.939Z",
    "dataAsOf": "2026-10-02"
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "WalletConnect lets an application propose a session with a wallet, including requested chains, methods and events. The wallet accepts or rejects that proposal and shares approved public-account information. A session establishes a communication channel; each later signing request still has its own meaning, and disconnecting it does not undo permissions already recorded onchain.",
    "claimId": "walletconnect-sessions-quick-answer",
    "sourceIds": [
      "x425-eth-walletconnect",
      "x425-eth-walletconnect-namespaces",
      "x425-eth-erc721"
    ]
  },
  "keyFacts": [
    {
      "label": "Proposal",
      "value": "The application requests session capabilities.",
      "sourceIds": [
        "x425-eth-walletconnect"
      ],
      "id": "proposal",
      "claimId": "walletconnect-sessions-fact-proposal"
    },
    {
      "label": "Approval",
      "value": "The wallet controls whether the proposed session is accepted.",
      "sourceIds": [
        "x425-eth-walletconnect"
      ],
      "id": "approval",
      "claimId": "walletconnect-sessions-fact-approval"
    },
    {
      "label": "Separate state",
      "value": "Onchain operator approval belongs to the token contract.",
      "sourceIds": [
        "x425-eth-erc721"
      ],
      "id": "separate-state",
      "claimId": "walletconnect-sessions-fact-separate-state"
    }
  ],
  "prerequisites": [
    "ethereum-wallet-requests"
  ],
  "sections": [
    {
      "id": "pairing",
      "heading": "A QR code begins a connection flow",
      "sourceIds": [
        "x425-eth-walletconnect",
        "x425-eth-walletconnect-namespaces"
      ],
      "paragraphs": [
        "The documented Sign flow uses a pairing link or QR code so the wallet and application can establish communication. The application then proposes namespaces describing the chains, methods and account capabilities it wants.",
        "Inspect the application identity and requested scope before accepting. A working connection does not verify the application’s business promises."
      ]
    },
    {
      "id": "example",
      "heading": "A connection and an NFT sale require different decisions",
      "sourceIds": [
        "x425-eth-walletconnect",
        "x425-eth-walletconnect-namespaces",
        "x425-eth-erc721"
      ],
      "paragraphs": [
        "Suppose a marketplace session is approved for one chain and your public account. It subsequently requests an NFT operator approval. That second request changes a contract permission if signed and executed; it is not merely another name for connecting.",
        "Check later messages individually. Session scope describes what the app may ask the wallet to do, rather than proving that every request is appropriate."
      ]
    },
    {
      "id": "disconnect",
      "heading": "Close the channel and inspect lasting permissions separately",
      "sourceIds": [
        "x425-eth-walletconnect",
        "x425-eth-erc721"
      ],
      "paragraphs": [
        "Ending a session stops using that session for wallet communication. It does not call a token contract’s approval-revocation function or reverse an already executed transfer.",
        "When cleaning up an old connection, distinguish the session list from onchain approvals. A token operator granted earlier can remain authorized even if the marketplace no longer appears as connected."
      ]
    }
  ],
  "faq": [
    {
      "question": "Does scanning a WalletConnect QR code transfer funds?",
      "answer": "The documented pairing and session proposal are connection steps. Any subsequent transaction or signature request should be evaluated separately before approval.",
      "sourceIds": [
        "x425-eth-walletconnect"
      ]
    },
    {
      "question": "Does a session require revealing my seed phrase?",
      "answer": "No. The protocol negotiates a wallet session and approved accounts. A separate request for the recovery phrase is not part of that flow.",
      "sourceIds": [
        "x425-eth-walletconnect",
        "x425-eth-eth-security"
      ]
    }
  ],
  "claims": [
    {
      "id": "walletconnect-sessions-quick-answer",
      "articleSlug": "walletconnect-sessions",
      "statement": "WalletConnect lets an application propose a session with a wallet, including requested chains, methods and events. The wallet accepts or rejects that proposal and shares approved public-account information. A session establishes a communication channel; each later signing request still has its own meaning, and disconnecting it does not undo permissions already recorded onchain.",
      "sourceIds": [
        "source-f68e098f51825a11",
        "source-56f17960afd8dbbe",
        "source-b08b9aae11ea4085"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-f68e098f51825a11",
          "locator": "Session proposal; namespaces; session requests"
        },
        {
          "sourceId": "source-56f17960afd8dbbe",
          "locator": "Definition; Session Namespaces; Approving a Session Response; Rejecting a Session Response"
        },
        {
          "sourceId": "source-b08b9aae11ea4085",
          "locator": "safeTransferFrom; approve; setApprovalForAll; Transfer; metadata"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Fresh Session Proposal page supports pairing and later separate signature requests, but detailed chains/methods/events fields require the linked Namespaces specification. Independently opened that primary specification; added direct citation and hash-recorded retrieval before sealing. ERC721 lasting approvals are separate contract state. Added x425-eth-walletconnect-namespaces to directanswer and relevantsections; fresh200bodyhashrecord in independentcache and catalogue."
        ]
      }
    },
    {
      "id": "walletconnect-sessions-fact-proposal",
      "articleSlug": "walletconnect-sessions",
      "statement": "Proposal: The application requests session capabilities.",
      "sourceIds": [
        "source-f68e098f51825a11"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-f68e098f51825a11",
          "locator": "Session proposal; namespaces; session requests"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Fresh Session Proposal page supports pairing and later separate signature requests, but detailed chains/methods/events fields require the linked Namespaces specification. Independently opened that primary specification; added direct citation and hash-recorded retrieval before sealing. ERC721 lasting approvals are separate contract state. Added x425-eth-walletconnect-namespaces to directanswer and relevantsections; fresh200bodyhashrecord in independentcache and catalogue."
        ]
      }
    },
    {
      "id": "walletconnect-sessions-fact-approval",
      "articleSlug": "walletconnect-sessions",
      "statement": "Approval: The wallet controls whether the proposed session is accepted.",
      "sourceIds": [
        "source-f68e098f51825a11"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-f68e098f51825a11",
          "locator": "Session proposal; namespaces; session requests"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Fresh Session Proposal page supports pairing and later separate signature requests, but detailed chains/methods/events fields require the linked Namespaces specification. Independently opened that primary specification; added direct citation and hash-recorded retrieval before sealing. ERC721 lasting approvals are separate contract state. Added x425-eth-walletconnect-namespaces to directanswer and relevantsections; fresh200bodyhashrecord in independentcache and catalogue."
        ]
      }
    },
    {
      "id": "walletconnect-sessions-fact-separate-state",
      "articleSlug": "walletconnect-sessions",
      "statement": "Separate state: Onchain operator approval belongs to the token contract.",
      "sourceIds": [
        "source-b08b9aae11ea4085"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-b08b9aae11ea4085",
          "locator": "safeTransferFrom; approve; setApprovalForAll; Transfer; metadata"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Fresh Session Proposal page supports pairing and later separate signature requests, but detailed chains/methods/events fields require the linked Namespaces specification. Independently opened that primary specification; added direct citation and hash-recorded retrieval before sealing. ERC721 lasting approvals are separate contract state. Added x425-eth-walletconnect-namespaces to directanswer and relevantsections; fresh200bodyhashrecord in independentcache and catalogue."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "x425-eth-walletconnect",
      "label": "WalletConnect Sign concepts",
      "publisher": "WalletConnect",
      "url": "https://specs.walletconnect.com/2.0/specs/clients/sign/session-proposal",
      "locator": "Session proposal; namespaces; session requests",
      "note": "Session negotiation, supported chains/methods/accounts and request permission boundaries.",
      "version": "Documentation snapshot retrieved 2 October 2026; response hash recorded separately",
      "checkedAt": "2026-10-02T18:55:24.458Z",
      "contentSha256": "fc36f621fe7f7fc0fe3ff7a1a6cd9de9634b37f46454194304b00ec2a03a285b",
      "recordId": "source-f68e098f51825a11"
    },
    {
      "id": "x425-eth-walletconnect-namespaces",
      "label": "Namespaces",
      "publisher": "WalletConnect specifications",
      "url": "https://specs.walletconnect.com/2.0/specs/clients/sign/namespaces",
      "locator": "Definition; Session Namespaces; Approving a Session Response; Rejecting a Session Response",
      "note": "Proposal and session namespace fields define requested chains, methods, events and approved accounts.",
      "version": "WalletConnect Sign v2 documentation retrieved 2 October 2026",
      "checkedAt": "2026-10-02T19:20:32.372Z",
      "contentSha256": "2ef9b3cc6854992a048e713f7716f94870cb698ead79db12d343699ceb67e160",
      "recordId": "source-56f17960afd8dbbe"
    },
    {
      "id": "x425-eth-erc721",
      "label": "ERC-721 NFT standard",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-721",
      "locator": "safeTransferFrom; approve; setApprovalForAll; Transfer; metadata",
      "note": "Ownership, receiver checks, token-level and operator approvals, mint/burn event semantics.",
      "version": "ERC-721",
      "checkedAt": "2026-10-02T18:55:25.399Z",
      "contentSha256": "bedd672103f3ebb6803ce2bddb33a9ff3d23b08e8e3ae3173b6a5b016f65e2a1",
      "recordId": "source-b08b9aae11ea4085"
    },
    {
      "id": "x425-eth-eth-security",
      "label": "Ethereum security and scam prevention",
      "publisher": "ethereum.org contributors",
      "url": "https://ethereum.org/en/security/",
      "locator": "Wallet security; common scams; hardware wallets",
      "note": "Primary community guidance on wallet secrets, phishing, malicious sites and transaction checking.",
      "version": "Documentation snapshot retrieved 2 October 2026; response hash recorded separately",
      "checkedAt": "2026-10-02T18:55:24.140Z",
      "contentSha256": "1372ff086ae3f53ded99c8dfe308346a457574d41c04dc587de119a64080b448",
      "recordId": "source-83ec2d5a18d94ce1"
    }
  ],
  "related": {
    "articles": [
      "ethereum-wallet-requests",
      "ethereum-token-approvals",
      "ethereum-chain-id",
      "ethereum-wallet-derivation-paths",
      "ethereum-rpc-privacy"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and separate automated verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “WalletConnect sessions: pairing a wallet with an application.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/walletconnect-sessions/"
}
