{"title": "Wallet Test Framework", "logoImg": "bafkreies3zaql7fgwggan5q3frhq7jrnwcsimpprkwy64awpe5mddsaev4", "website": "https://wtf.allwallet.dev", "createdAt": 1692111660251, "userGithub": "SamWilsn", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..vDr7qv7SqrR5SVeR7pOmsw-mqHKYNBpUwj43CV5Rgx_waSOhLg68CoHCRfgfONbkj6qGk5Sg4PhnjH8UA0BaDQ", "type": "Ed25519Signature2018", "created": "2023-11-04T16:22:56.980Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2023-11-04T16:22:56.980Z", "expirationDate": "2024-02-02T16:22:56.980Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x004f67dAbb603AAA58eD52641CCafF09C559704A", "hash": "v0.0.0:NhyBmkKiHnmmGP0Q9IntrE8zHot+YQUzwjelDOv5wBc=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#wallet-test-framework#57262657"}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..pnd4sTU2-Z5gPA5mjQcC_kH-B5STNWakl48Sg9dM8KCGt3sK2Q9u3dLE2tdvjObhhdqQQB8bNCujwFs_e8x9CQ", "type": "Ed25519Signature2018", "created": "2023-11-04T16:29:50.320Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2023-11-04T16:29:50.320Z", "expirationDate": "2024-02-02T16:29:50.320Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x004f67dAbb603AAA58eD52641CCafF09C559704A", "hash": "v0.0.0:JCzg5gWmC6NniSpP/dC+3y60QDoc6dSpZF2GVl5lICc=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextTwitter#wallet58665"}}}, "description": "# Introduction\n\nWallets are the most important point of interaction for users on-boarding to the Ethereum ecosystem, and there are a lot of different wallets. While wallets are free to offer whatever advanced features they'd like, every wallet must support the same basic operations like transfers, displaying balances, and so on. This set of common features is the perfect place for automated testing.\n\nWallet Test Framework is that automated testing.\n\nWe'd like to see the UX quality among wallets improve, without a ton of duplicated effort. That's why we are building Wallet Test Framework: an automated testing framework that covers the basics, so wallet teams can build value-add features without sacrificing their foundation.\n\n# Learn More\n\nIf you'd like to learn more about our project structure or architecture, our [Kick Off](https://wtf.allwallet.dev/kick-off/) post has those details.\n\n# In Action\n\nThis is what WTF looks like when running an `eth_sendTransaction` test with Frame wallet and the manual glue. The manual glue works with any¹ wallet, as long as you can follow some on-screen instructions.\n\n[Demo Video](https://wtf.allwallet.dev/week-17/wtf-short.mp4)\n\n---\n\n¹ Any wallet that supports custom RPC endpoints and injects `window.ethereum`. Surprisingly, some don't!\n", "logoImgData": {}, "projectGithub": "wallet-test-framework", "projectTwitter": "wallet58665"}