{"id":158871,"date":"2022-06-20T11:46:31","date_gmt":"2022-06-20T11:46:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/stacks-access\/"},"modified":"2022-07-14T14:18:37","modified_gmt":"2022-07-14T14:18:37","slug":"stacks-access","status":"publish","type":"plugin","link":"https:\/\/lo.wordpress.org\/plugins\/stacks-access\/","author":20464284,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.3","stable_tag":"trunk","tested":"6.0.11","requires":"5.9.2","requires_php":"","requires_plugins":"","header_name":"Stacks Access","header_author":"Web3devs","header_description":"Restrict accesss to pages for users holding specified Stacks-based tokens (NFTs, tokens, STX, etc.)","assets_banners_color":"","last_updated":"2022-07-14 14:18:37","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/stacksaccess.com","header_plugin_uri":"https:\/\/stacksaccess.com\/","header_author_uri":"https:\/\/web3devs.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":729,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":{"1.0.0":"<ul>\n<li>Mainnet \/ Testnet compatible Stacks Access plugin<\/li>\n<\/ul>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Plugin on plugins list","2":"Token configuration screen (Settings)","3":"Connect wallet triggered on a page with restricted access","4":"Selecting account","5":"Signing message"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1911,17224,25164],"plugin_category":[],"plugin_contributors":[211416],"plugin_business_model":[],"class_list":["post-158871","plugin","type-plugin","status-publish","hentry","plugin_tags-access","plugin_tags-blockchain","plugin_tags-stacks","plugin_contributors-web3devs","plugin_committers-web3devs"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/stacks-access.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Stacks Access Plugin allows users to define which Posts or Pages have limited access based on user's <a href=\"https:\/\/www.hiro.so\/wallet\">Hiro<\/a> wallet contents (STX, NFTs, Fungible Tokens).<\/p>\n\n<p>Ex. let's say you own Crypto Ducks Club NFTs and want your blog content to be available only to other Crypto Ducks Club owners - with this plugin, you can do that.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload <code>web3devs-stacks-access.zip<\/code> to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Unzip the file<\/li>\n<li>Remove the zip file, leave the directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to \"Stacks Access &gt; Settings\" and configure token contract addresses (or stx\/STX for STX)<\/li>\n<li>Go to Page\/Post and use Stacks Access Widget (at the bottom) to configure access restrictions<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='what%20wallets%20do%20you%20support%3F'><h3>What wallets do you support?<\/h3><\/dt>\n<dd><p><a href=\"https:\/\/www.hiro.so\/wallet\">Hiro Wallet<\/a> only.<\/p><\/dd>\n<dt id='do%20you%20plan%20to%20support%20any%20other%20wallets%3F'><h3>Do you plan to support any other wallets?<\/h3><\/dt>\n<dd><p>Short answer: no.<\/p>\n\n<p>Long answer: <a href=\"https:\/\/www.xverse.app\/\">Xverse<\/a> - maybe. <a href=\"https:\/\/walletconnect.com\/\">Wallet Connect<\/a> compatible wallets - maybe.<\/p>\n\n<p>If a wallet is compatible with <a href=\"https:\/\/www.hiro.so\/stacks-js\">Stacks.js<\/a>, then it should work.<\/p>\n\n<p>Hiro Wallet is the de facto standard for Stacks &#129335;<\/p><\/dd>\n<dt id='what%20php%20extensions%20are%20required%20for%20this%20plugin%20to%20work%3F'><h3>What PHP extensions are required for this plugin to work?<\/h3><\/dt>\n<dd><p>None.<\/p>\n\n<p>The ones that we would <strong>probably<\/strong> need for this to be 100% PHP based are:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/github.com\/Bit-Wasp\/secp256k1-php\">secp256k1<\/a> - but it's experimental, requires manual compilation and it's development is staled<\/li>\n<li><a href=\"https:\/\/github.com\/stacks-network\/c32check\">c32check<\/a> - it's Stacks' variant, so has to be reimplemented in PHP<\/li>\n<li><a href=\"https:\/\/www.hiro.so\/stacks-js\">stacks.js<\/a> - but in PHP :)<\/li>\n<\/ul>\n\n<p>Since none of the above is available at the moment, we've moved the required dependencies to a third party service that simply takes the signature and calculates Public Address used to sign it.<\/p><\/dd>\n<dt id='what%20is%20the%20transaction%20cost%20%28gas%20fee%29%20of%20determining%20the%20access%3F'><h3>What is the transaction cost (gas fee) of determining the access?<\/h3><\/dt>\n<dd><p>0 (zero).<\/p>\n\n<p>There's no cost, because there's no transaction involved.<\/p>\n\n<p>Signing a secret phrase is the wallet's built in functionality. It happens \"locally\" and is not published to the blockchain, therefore does not end up as a transaction.<\/p><\/dd>\n<dt id='why%20do%20you%20need%20access%20to%20my%20wallet%3F'><h3>Why do you need access to my wallet?<\/h3><\/dt>\n<dd><p>We don't.<\/p>\n\n<p>We don't need it and we don't access it.<\/p>\n\n<p>We need your wallet's <strong>public address<\/strong>. To prove <strong>you OWN the address<\/strong>, we need you to use the wallet to sign a secret phrase for us (your wallet uses your <strong>private key<\/strong> to do it - <strong>the key never leaves your computer!<\/strong>).<\/p>\n\n<p>Your wallet contents is publicly available information. If you know a wallet's address, ex. <strong>ST24YYAWQ4DK4RKCKK1RP4PX0X5SCSXTWQXFGVCVY<\/strong> you can see it's contents in blockchain explorer or via Stacks API - that's how we determine if you own configured tokens.<\/p>\n\n<p>See:\n- <a href=\"https:\/\/stacks-node-api.testnet.stacks.co\/extended\/v1\/address\/ST24YYAWQ4DK4RKCKK1RP4PX0X5SCSXTWQXFGVCVY\/balances\" title=\"ST24 address through Stacks API\">API view<\/a>\n- <a href=\"https:\/\/explorer.stacks.co\/address\/ST24YYAWQ4DK4RKCKK1RP4PX0X5SCSXTWQXFGVCVY?chain=testnet\" title=\"ST24 address through Stacks Explorer\">Stacks Explorer<\/a><\/p>\n\n<p>If <strong>we (or ANYONE ELSE)<\/strong> ask you for your <strong>private key<\/strong> or <strong>seed\/mnemonic phrase<\/strong> - <strong>THAT'S SOMETHING you should be worried about<\/strong><\/p><\/dd>\n<dt id='why%20does%20it%20say%20%22testnet%22%20when%20i%27m%20on%20mainnet%3F'><h3>Why does it say \"testnet\" when I'm on mainnet?<\/h3><\/dt>\n<dd><p>It's due to a bug in Hiro Wallet, see <a href=\"https:\/\/github.com\/hirosystems\/stacks-wallet-web\/issues\/2463\">here<\/a>.<\/p>\n\n<p>Basically, when connecting Hiro Wallet for signing, the account selection screen <strong>sometimes<\/strong> makes no effect and your current account is selected.<\/p>\n\n<p>Pay attention to account public address shown at the top of the screens to make sure you're signing with desired account.<\/p>\n\n<p>Otherwise - switch it in the wallet, before connecting (refresh the page to \"disconnect\" your wallet if needed, sometimes you may need to close your browser (clear session cookies))<\/p><\/dd>\n<dt id='are%20there%20any%20other%20stacks%2Fhiro%20bugs%20i%20should%20be%20concerned%20about%3F'><h3>Are there any other Stacks\/Hiro bugs I should be concerned about?<\/h3><\/dt>\n<dd><p>Yes.<\/p>\n\n<p>Message signing (which we use to derive your wallet's public address) is a relatively new feature in Hiro Wallet and Stacks itself and it's been published prematurely :)<\/p>\n\n<p>There are (were) problems with:\n- message signing in a way that prevented users from deriving public address from signatures (see <a href=\"https:\/\/github.com\/hirosystems\/stacks-wallet-web\/issues\/2435\">here<\/a>, <a href=\"https:\/\/github.com\/hirosystems\/stacks.js\/pull\/1260\">here<\/a> and <a href=\"https:\/\/github.com\/hirosystems\/stacks-wallet-web\/issues\/2419\">here<\/a>)\n- incompatible secp256k1 signature orders (vrs vs rsv) (see <a href=\"https:\/\/github.com\/hirosystems\/stacks.js\/pull\/1263\">here<\/a>)<\/p>\n\n<p>The good thing is: it's a known problem\nThe bad thing is: when it's fixed, chances are our plugin will stop working until we make it compatible with the new versions of Hiro Wallet and Stacks.js<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Changed logo again<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Changed logo<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: Issue with \"testnet\" phrase showing up when \"mainnet\" account selected<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Mainnet \/ Testnet compatible Stacks Access plugin<\/li>\n<\/ul>","raw_excerpt":"Limit access to Posts and Pages based on user&#039;s Stacks wallet content (ex. STX, Fungible Tokens or NFTs).","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/158871","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=158871"}],"author":[{"embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/web3devs"}],"wp:attachment":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=158871"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=158871"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=158871"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=158871"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=158871"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=158871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}