[{"data":1,"prerenderedAt":844},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fdev\u002Fbeam-shaders\u002Fusing-beam-shaders-with-cli-wallet-masternet":3,"docs-surround-\u002Fdocs\u002Fdev\u002Fbeam-shaders\u002Fusing-beam-shaders-with-cli-wallet-masternet":834},{"id":4,"title":5,"body":6,"description":825,"extension":826,"image":827,"meta":828,"navTitle":827,"navigation":829,"path":830,"seo":831,"stem":832,"__hash__":833},"docs\u002Fdocs\u002Fdev\u002Fbeam-shaders\u002Fusing-beam-shaders-with-cli-wallet-masternet.md","Using Beam Shaders with CLI Wallet (masternet)",{"type":7,"value":8,"toc":818},"minimark",[9,13,42,47,58,61,78,85,89,135,150,154,160,170,173,176,182,185,549,562,610,626,632,647,650,659,663,668,671,696,702,708,714,720,724,733,739,745,748,754,764,768,814],[10,11,5],"h1",{"id":12},"using-beam-shaders-with-cli-wallet-masternet",[14,15,16,20,21,20,30],"p",{},[17,18,19],"em",{},"All examples refer to a sample application \"mydapp\" which has two"," ",[22,23,27],"a",{"href":24,"rel":25},"https:\u002F\u002Fgithub.com\u002FBeamMW\u002Fbeam\u002Ftree\u002Fmaster\u002Fbvm\u002FShaders\u002Fvault",[26],"nofollow",[17,28,29],{},"Vault",[17,31,32,33,37,38,41],{},"Shaders: App Shader (",[34,35,36],"code",{},"app.wasm",") and Contract Shader (",[34,39,40],{},"contract.wasm",").",[43,44,46],"h3",{"id":45},"overview","Overview",[14,48,49,50,53,54,57],{},"Beam shaders support requires ",[34,51,52],{},"Fork3"," and at least ",[34,55,56],{},"v6.0"," CLI.",[14,59,60],{},"There are two types of Shaders in Beam:",[62,63,64,72],"ul",{},[65,66,67,71],"li",{},[68,69,70],"strong",{},"Contract Shader"," - implements Smart Contract functionality, is stored on the blockchain and are running on Beam nodes.",[65,73,74,77],{},[68,75,76],{},"App Shader"," - implements Smart Contract API and is running in Beam wallet.",[14,79,80,81,84],{},"To perform any transactions with shaders, you must specify the ",[34,82,83],{},"shader"," command.",[43,86,88],{"id":87},"prerequisites","Prerequisites",[90,91,92,117,124,132],"ol",{},[65,93,94,95,99,100,103,106,107,110,111,110,114,116],{},"Make sure you have node running and connected to ",[22,96,98],{"href":97},"broken-reference","local network",".",[101,102],"br",{},[68,104,105],{},"Notice:"," Shaders are applied after the third fork with height 1500. Therefore, for faster testing, we recommend to define lower heights using the ",[34,108,109],{},"Fork1",", ",[34,112,113],{},"Fork2",[34,115,52],{}," attributes.",[65,118,119,120,123],{},"Create at least one Beam node with ",[34,121,122],{},"--peer=\u003Cip:port of the first node>"," for the transaction replication.",[65,125,126,127,131],{},"Make sure you have Beam ",[22,128,130],{"href":129},"..\u002Fbeam-wallets\u002Fcommand-line-wallet","CLI wallet"," connected to your Beam node.",[65,133,134],{},"You must have funds in your wallet to pay the fee.",[14,136,137,138,141,142,145,146,149],{},"Since this tutorial is based on a local network, each command must be specified with the ",[34,139,140],{},"--FakePoW=1"," flag. For convenience we recommend adding this flag to your ",[34,143,144],{},"beam-node.cfg"," and ",[34,147,148],{},"beam-wallet.cfg"," files.",[43,151,153],{"id":152},"shader-api","Shader API",[14,155,156,157,159],{},"First of all, you need to know the available actions of a contract. To see all commands supported by the App Shader enter the following command with ",[34,158,83],{}," command:",[161,162,167],"pre",{"className":163,"code":165,"language":166},[164],"language-text",".\u002Fbeam-wallet-masternet shader --pass=1 --shader_app_file=mydapp\u002Fapp.wasm -n localhost:10000\n","text",[34,168,165],{"__ignoreMap":169},"",[14,171,172],{},"You need to specify your wallet password, shader application file and node address.",[14,174,175],{},"The output is a json format line:",[161,177,180],{"className":178,"code":179,"language":166},[164],"Shader output: {\"roles\": {\"manager\": {\"create\": {},\"destroy\": {\"cid\": \"ContractID\"},\"view\": {},\"view_logs\": {\"cid\": \"ContractID\"},\"view_accounts\": {\"cid\": \"ContractID\"},\"view_account\": {\"cid\": \"ContractID\",\"pubKey\": \"PubKey\"}},\"my_account\": {\"view\": {\"cid\": \"ContractID\"},\"get_key\": {\"cid\": \"ContractID\"},\"get_proof\": {\"cid\": \"ContractID\",\"aid\": \"AssetID\"},\"deposit\": {\"cid\": \"ContractID\",\"pkForeign\": \"PubKey\",\"bCoSigner\": \"uint32_t\",\"amount\": \"Amount\",\"aid\": \"AssetID\"},\"withdraw\": {\"cid\": \"ContractID\",\"pkForeign\": \"PubKey\",\"bCoSigner\": \"uint32_t\",\"amount\": \"Amount\",\"aid\": \"AssetID\"}}}}\n",[34,181,179],{"__ignoreMap":169},[14,183,184],{},"For convenience, let's put it this way:",[161,186,190],{"className":187,"code":188,"language":189,"meta":169,"style":169},"language-json shiki shiki-themes github-dark","{\n  \"roles\": {\n    \"manager\": {\n      \"create\": {},\n      \"destroy\": { \"cid\": \"ContractID\" },\n      \"view\": {},\n      \"view_logs\": { \"cid\": \"ContractID\" },\n      \"view_accounts\": { \"cid\": \"ContractID\" },\n      \"view_account\": { \"cid\": \"ContractID\", \"pubKey\": \"PubKey\" }\n    },\n    \"my_account\": {\n      \"view\": { \"cid\": \"ContractID\" },\n      \"get_key\": { \"cid\": \"ContractID\" },\n      \"get_proof\": { \"cid\": \"ContractID\", \"aid\": \"AssetID\" },\n      \"deposit\": {\n        \"cid\": \"ContractID\",\n        \"pkForeign\": \"PubKey\",\n        \"bCoSigner\": \"uint32_t\",\n        \"amount\": \"Amount\",\n        \"aid\": \"AssetID\"\n      },\n      \"withdraw\": {\n        \"cid\": \"ContractID\",\n        \"pkForeign\": \"PubKey\",\n        \"bCoSigner\": \"uint32_t\",\n        \"amount\": \"Amount\",\n        \"aid\": \"AssetID\"\n      }\n    }\n  }\n}\n","json",[34,191,192,201,211,219,228,250,258,274,290,317,323,331,346,362,388,396,409,421,434,447,458,464,472,483,494,505,516,525,531,537,543],{"__ignoreMap":169},[193,194,197],"span",{"class":195,"line":196},"line",1,[193,198,200],{"class":199},"s95oV","{\n",[193,202,204,208],{"class":195,"line":203},2,[193,205,207],{"class":206},"sDLfK","  \"roles\"",[193,209,210],{"class":199},": {\n",[193,212,214,217],{"class":195,"line":213},3,[193,215,216],{"class":206},"    \"manager\"",[193,218,210],{"class":199},[193,220,222,225],{"class":195,"line":221},4,[193,223,224],{"class":206},"      \"create\"",[193,226,227],{"class":199},": {},\n",[193,229,231,234,237,240,243,247],{"class":195,"line":230},5,[193,232,233],{"class":206},"      \"destroy\"",[193,235,236],{"class":199},": { ",[193,238,239],{"class":206},"\"cid\"",[193,241,242],{"class":199},": ",[193,244,246],{"class":245},"sU2Wk","\"ContractID\"",[193,248,249],{"class":199}," },\n",[193,251,253,256],{"class":195,"line":252},6,[193,254,255],{"class":206},"      \"view\"",[193,257,227],{"class":199},[193,259,261,264,266,268,270,272],{"class":195,"line":260},7,[193,262,263],{"class":206},"      \"view_logs\"",[193,265,236],{"class":199},[193,267,239],{"class":206},[193,269,242],{"class":199},[193,271,246],{"class":245},[193,273,249],{"class":199},[193,275,277,280,282,284,286,288],{"class":195,"line":276},8,[193,278,279],{"class":206},"      \"view_accounts\"",[193,281,236],{"class":199},[193,283,239],{"class":206},[193,285,242],{"class":199},[193,287,246],{"class":245},[193,289,249],{"class":199},[193,291,293,296,298,300,302,304,306,309,311,314],{"class":195,"line":292},9,[193,294,295],{"class":206},"      \"view_account\"",[193,297,236],{"class":199},[193,299,239],{"class":206},[193,301,242],{"class":199},[193,303,246],{"class":245},[193,305,110],{"class":199},[193,307,308],{"class":206},"\"pubKey\"",[193,310,242],{"class":199},[193,312,313],{"class":245},"\"PubKey\"",[193,315,316],{"class":199}," }\n",[193,318,320],{"class":195,"line":319},10,[193,321,322],{"class":199},"    },\n",[193,324,326,329],{"class":195,"line":325},11,[193,327,328],{"class":206},"    \"my_account\"",[193,330,210],{"class":199},[193,332,334,336,338,340,342,344],{"class":195,"line":333},12,[193,335,255],{"class":206},[193,337,236],{"class":199},[193,339,239],{"class":206},[193,341,242],{"class":199},[193,343,246],{"class":245},[193,345,249],{"class":199},[193,347,349,352,354,356,358,360],{"class":195,"line":348},13,[193,350,351],{"class":206},"      \"get_key\"",[193,353,236],{"class":199},[193,355,239],{"class":206},[193,357,242],{"class":199},[193,359,246],{"class":245},[193,361,249],{"class":199},[193,363,365,368,370,372,374,376,378,381,383,386],{"class":195,"line":364},14,[193,366,367],{"class":206},"      \"get_proof\"",[193,369,236],{"class":199},[193,371,239],{"class":206},[193,373,242],{"class":199},[193,375,246],{"class":245},[193,377,110],{"class":199},[193,379,380],{"class":206},"\"aid\"",[193,382,242],{"class":199},[193,384,385],{"class":245},"\"AssetID\"",[193,387,249],{"class":199},[193,389,391,394],{"class":195,"line":390},15,[193,392,393],{"class":206},"      \"deposit\"",[193,395,210],{"class":199},[193,397,399,402,404,406],{"class":195,"line":398},16,[193,400,401],{"class":206},"        \"cid\"",[193,403,242],{"class":199},[193,405,246],{"class":245},[193,407,408],{"class":199},",\n",[193,410,412,415,417,419],{"class":195,"line":411},17,[193,413,414],{"class":206},"        \"pkForeign\"",[193,416,242],{"class":199},[193,418,313],{"class":245},[193,420,408],{"class":199},[193,422,424,427,429,432],{"class":195,"line":423},18,[193,425,426],{"class":206},"        \"bCoSigner\"",[193,428,242],{"class":199},[193,430,431],{"class":245},"\"uint32_t\"",[193,433,408],{"class":199},[193,435,437,440,442,445],{"class":195,"line":436},19,[193,438,439],{"class":206},"        \"amount\"",[193,441,242],{"class":199},[193,443,444],{"class":245},"\"Amount\"",[193,446,408],{"class":199},[193,448,450,453,455],{"class":195,"line":449},20,[193,451,452],{"class":206},"        \"aid\"",[193,454,242],{"class":199},[193,456,457],{"class":245},"\"AssetID\"\n",[193,459,461],{"class":195,"line":460},21,[193,462,463],{"class":199},"      },\n",[193,465,467,470],{"class":195,"line":466},22,[193,468,469],{"class":206},"      \"withdraw\"",[193,471,210],{"class":199},[193,473,475,477,479,481],{"class":195,"line":474},23,[193,476,401],{"class":206},[193,478,242],{"class":199},[193,480,246],{"class":245},[193,482,408],{"class":199},[193,484,486,488,490,492],{"class":195,"line":485},24,[193,487,414],{"class":206},[193,489,242],{"class":199},[193,491,313],{"class":245},[193,493,408],{"class":199},[193,495,497,499,501,503],{"class":195,"line":496},25,[193,498,426],{"class":206},[193,500,242],{"class":199},[193,502,431],{"class":245},[193,504,408],{"class":199},[193,506,508,510,512,514],{"class":195,"line":507},26,[193,509,439],{"class":206},[193,511,242],{"class":199},[193,513,444],{"class":245},[193,515,408],{"class":199},[193,517,519,521,523],{"class":195,"line":518},27,[193,520,452],{"class":206},[193,522,242],{"class":199},[193,524,457],{"class":245},[193,526,528],{"class":195,"line":527},28,[193,529,530],{"class":199},"      }\n",[193,532,534],{"class":195,"line":533},29,[193,535,536],{"class":199},"    }\n",[193,538,540],{"class":195,"line":539},30,[193,541,542],{"class":199},"  }\n",[193,544,546],{"class":195,"line":545},31,[193,547,548],{"class":199},"}\n",[14,550,551,552,145,555,558,559,561],{},"As you can see above, there are two roles in this example: ",[34,553,554],{},"manager",[34,556,557],{},"my_account",". Each role has its own available actions with or without required attributes. Consider the role ",[34,560,554],{}," , it has the following actions:",[62,563,564,569,579,584,591,598],{},[65,565,566],{},[34,567,568],{},"create",[65,570,571,574,575,578],{},[34,572,573],{},"destroy",", requires the ",[34,576,577],{},"cid"," attribute",[65,580,581],{},[34,582,583],{},"view",[65,585,586,574,589,578],{},[34,587,588],{},"view_logs",[34,590,577],{},[65,592,593,574,596,578],{},[34,594,595],{},"view_accounts",[34,597,577],{},[65,599,600,603,604,145,606,609],{},[34,601,602],{},"view_account",", requires ",[34,605,577],{},[34,607,608],{},"pubKey"," attributes",[14,611,612,613,615,616,619,620,622,623,625],{},"This means that if, for example, we want to deploy a contract (in Vault, deployment is ",[34,614,568],{}," argument), we must specify ",[34,617,618],{},"shader_args","(consider below) with the role ",[34,621,554],{}," and the action ",[34,624,568],{},":",[161,627,630],{"className":628,"code":629,"language":166},[164],"--shader_args=\"role=manager,action=create\"\n",[34,631,629],{"__ignoreMap":169},[14,633,634,635,638,639,642,643,646],{},"Specifying a ",[34,636,637],{},"role"," and an ",[34,640,641],{},"action"," in a ",[34,644,645],{},"key=value"," pair representation is a requirement for working with shaders. But each contract has its own API and the arguments can be different.",[43,648,649],{"id":577},"Cid",[14,651,652,654,655,658],{},[68,653,577],{}," (i.e. ",[68,656,657],{},"contract id",") is the frequently required attribute. We get it after our contract has been deployed. The same contract which has been deployed with different attributes, will have different values.",[43,660,662],{"id":661},"working-with-shaders","Working with shaders",[664,665,667],"h4",{"id":666},"commands-rules","Commands rules",[14,669,670],{},"There are required flags that need to be passed in the wallet CLI to work with the contract:",[62,672,673,679,685,691],{},[65,674,675,678],{},[34,676,677],{},"--shader_app_file=\u003Capp.wasm>"," - for application shader",[65,680,681,684],{},[34,682,683],{},"--shader_contract_file=\u003Ccontract.wasm>"," - for contract shader",[65,686,687,690],{},[34,688,689],{},"--shader_args=\"role=\u003Crole>,action=\u003Caction>\""," - shader arguments",[65,692,693],{},[34,694,695],{},"-n \u003Cnode address>",[14,697,698,699,701],{},"All arguments in ",[34,700,618],{}," are passed separated by commas without spaces. For example:",[161,703,706],{"className":704,"code":705,"language":166},[164],"--shader_args=\"role=manager,action=view\"\n",[34,707,705],{"__ignoreMap":169},[14,709,710,711,713],{},"If the ",[34,712,641],{}," has additional attributes, they also are separated by commas without spaces:",[161,715,718],{"className":716,"code":717,"language":166},[164],"--shader_args=\"role=manager,action=view_logs,cid=d9c5d1782b2d2b6f733486be480bb0d8bcf34d5fdc63bbac996ed76af541cc14\"\n",[34,719,717],{"__ignoreMap":169},[664,721,723],{"id":722},"deploy-contract","Deploy contract",[14,725,726,727,729,730,732],{},"To work with the contract, you first need to deploy it. As we said, in our Vault example contract, the deployment corresponds to the ",[34,728,554],{}," role and ",[34,731,568],{}," action.",[14,734,735,736,625],{},"Based on our knowledge, we got the following command to ",[68,737,738],{},"deploy contract",[161,740,743],{"className":741,"code":742,"language":166},[164],".\u002Fbeam-wallet-masternet shader --shader_app_file=mydapp\u002Fapp.wasm --shader_args=\"role=manager,action=create\" --shader_contract_file=mydapp\u002Fcontract.wasm -n localhost:10000\n",[34,744,742],{"__ignoreMap":169},[14,746,747],{},"Output example:",[161,749,752],{"className":750,"code":751,"language":166},[164],"Creating new contract invocation tx on behalf of the shader\nContract ID: d9c5d1782b2d2b6f733486be480bb0d8bcf34d5fdc63bbac996ed76af541cc14\n        Comment: create Vault contract  Total fee: 1100000 GROTH\nI 2022-06-06.11:43:08.288 [ac09d5dc897647bf876b7d17d8219a77][1] Get proof for kernel: 6625e9f7756a98eb\nI 2022-06-06.11:43:08.289 Synchronizing with node: 100% (1\u002F1)\nI 2022-06-06.11:43:08.289 Current state is 8-65a2ecdf447ad942\nI 2022-06-06.11:43:18.354 Sync up to 9-7d15da24d2717100\nI 2022-06-06.11:43:18.354 Synchronizing with node: 0% (0\u002F2)\nI 2022-06-06.11:43:18.355 CoinID: Key=mine-1:1:1, Value=8000000000 Maturity=6 Spent, Height=9\nI 2022-06-06.11:43:18.356 CoinID: Key=chng-1:0:3958598515398969808, Value=7998900000 Maturity=9 Confirmed, Height=9\nI 2022-06-06.11:43:18.356 Synchronizing with node: 50% (1\u002F2)\nI 2022-06-06.11:43:18.356 Synchronizing with node: 100% (2\u002F2)\nI 2022-06-06.11:43:18.356 Current state is 9-7d15da24d2717100\nI 2022-06-06.11:43:18.356 [ac09d5dc897647bf876b7d17d8219a77][1] Get proof for kernel: 6625e9f7756a98eb\nI 2022-06-06.11:43:18.357 [ac09d5dc897647bf876b7d17d8219a77] Transaction completed\n",[34,753,751],{"__ignoreMap":169},[14,755,756,757,760,761,763],{},"In the ",[34,758,759],{},"Contract ID"," line we got the ",[34,762,577],{}," for this deployed contract.",[664,765,767],{"id":766},"command-examples","Command examples",[62,769,770,791],{},[65,771,772,775,776,782,784,785],{},[68,773,774],{},"View"," deployed contracts:",[161,777,780],{"className":778,"code":779,"language":166},[164],".\u002Fbeam-wallet-masternet shader --shader_app_file=mydapp\u002Fapp.wasm --shader_args=\"role=manager,action=view\" --shader_contract_file=mydapp\u002Fcontract.wasm -n localhost:10000\n",[34,781,779],{"__ignoreMap":169},[101,783],{},"The output could be like this:",[161,786,789],{"className":787,"code":788,"language":166},[164],"Shader output: {\"contracts\": [{\"cid\": \"d9c5d1782b2d2b6f733486be480bb0d8bcf34d5fdc63bbac996ed76af541cc14\",\"Height\": 9}]}\n",[34,790,788],{"__ignoreMap":169},[65,792,793,796,797,799,800,806,747,808],{},[68,794,795],{},"Destroy"," contract (with ",[34,798,577],{}," from the example above)",[161,801,804],{"className":802,"code":803,"language":166},[164],".\u002Fbeam-wallet-masternet shader --shader_app_file=mydapp\u002Fapp.wasm --shader_contract_file=mydapp\u002Fcontract.wasm --shader_args=\"role=manager,action=destroy,cid=d9c5d1782b2d2b6f733486be480bb0d8bcf34d5fdc63bbac996ed76af541cc14\" -n localhost:10000\n",[34,805,803],{"__ignoreMap":169},[101,807],{},[161,809,812],{"className":810,"code":811,"language":166},[164],"Creating new contract invocation tx on behalf of the shader\nContract ID: d9c5d1782b2d2b6f733486be480bb0d8bcf34d5fdc63bbac996ed76af541cc14\n      Comment: destroy Vault contract   Total fee: 1100000 GROTH\nI 2022-06-06.12:34:15.962 Sync up to 311-788f821396683a25\nI 2022-06-06.12:34:15.962 Synchronizing with node: 0% (0\u002F2)\nI 2022-06-06.12:34:15.967 Synchronizing with node: 0% (0\u002F2)\nI 2022-06-06.12:34:15.967 CoinID: Key=mine-1:1:307, Value=8000000000 Maturity=312 Confirmed, Height=307\nI 2022-06-06.12:34:15.968 CoinID: Key=mine-1:1:308, Value=8000000000 Maturity=313 Confirmed, Height=308\nI 2022-06-06.12:34:15.968 CoinID: Key=mine-1:1:309, Value=8000000000 Maturity=314 Confirmed, Height=309\nI 2022-06-06.12:34:15.968 CoinID: Key=mine-1:1:310, Value=8000000000 Maturity=315 Confirmed, Height=310\nI 2022-06-06.12:34:15.969 CoinID: Key=mine-1:1:311, Value=8000000000 Maturity=316 Confirmed, Height=311\nI 2022-06-06.12:34:15.969 Synchronizing with node: 50% (1\u002F2)\nI 2022-06-06.12:34:15.969 Synchronizing with node: 100% (2\u002F2)\nI 2022-06-06.12:34:15.969 Current state is 311-788f821396683a25\nI 2022-06-06.12:34:15.969 [7b8eb0b0bd2340529996c7598d3ebaff][1] Get proof for kernel: eb45c335bca2e17c\nI 2022-06-06.12:34:15.970 Synchronizing with node: 100% (1\u002F1)\nI 2022-06-06.12:34:15.970 Current state is 311-788f821396683a25\nI 2022-06-06.12:34:26.111 Rolled back to 306-910bc6ca48d05757\nI 2022-06-06.12:34:26.112 Sync up to 312-d156e1bf16939393\nI 2022-06-06.12:34:26.113 Synchronizing with node: 0% (0\u002F2)\nI 2022-06-06.12:34:26.113 CoinID: Key=mine-1:1:307, Value=8000000000 Maturity=312 Confirmed, Height=307\nI 2022-06-06.12:34:26.113 CoinID: Key=mine-1:1:308, Value=8000000000 Maturity=313 Confirmed, Height=308\nI 2022-06-06.12:34:26.114 CoinID: Key=chng-1:0:3958598515398969808, Value=7998900000 Maturity=9 Spent, Height=312\nI 2022-06-06.12:34:26.114 CoinID: Key=chng-1:0:12345322638362229725, Value=7997800000 Maturity=312 Confirmed, Height=312\nI 2022-06-06.12:34:26.115 Synchronizing with node: 50% (1\u002F2)\nI 2022-06-06.12:34:26.115 Synchronizing with node: 100% (2\u002F2)\nI 2022-06-06.12:34:26.115 Current state is 312-d156e1bf16939393\nI 2022-06-06.12:34:26.115 [7b8eb0b0bd2340529996c7598d3ebaff][1] Get proof for kernel: eb45c335bca2e17c\nI 2022-06-06.12:34:26.116 [7b8eb0b0bd2340529996c7598d3ebaff] Transaction completed\n",[34,813,811],{"__ignoreMap":169},[815,816,817],"style",{},"html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":169,"searchDepth":203,"depth":203,"links":819},[820,821,822,823,824],{"id":45,"depth":213,"text":46},{"id":87,"depth":213,"text":88},{"id":152,"depth":213,"text":153},{"id":577,"depth":213,"text":649},{"id":661,"depth":213,"text":662},"This document describes how to use Beam Shaders with CLI wallet running on a local network.","md",null,{},true,"\u002Fdocs\u002Fdev\u002Fbeam-shaders\u002Fusing-beam-shaders-with-cli-wallet-masternet",{"title":5,"description":825},"docs\u002Fdev\u002Fbeam-shaders\u002Fusing-beam-shaders-with-cli-wallet-masternet","AQm_O0waefZ4xwlIpE6L-UTkg_LdRh-G0wzpNAYtrrE",[835,839],{"title":836,"path":837,"stem":838,"description":169,"children":-1},"Beam Shaders","\u002Fdocs\u002Fdev\u002Fbeam-shaders\u002Freadme","docs\u002Fdev\u002Fbeam-shaders\u002FREADME",{"title":840,"path":841,"stem":842,"description":843,"children":-1},"Atomic Swaps","\u002Fdocs\u002Fdev\u002Fbeam-technology\u002Fatomic-swaps","docs\u002Fdev\u002Fbeam-technology\u002Fatomic-swaps","Beam offers Atomic Swap functionality, enabling peer-to-peer trading of Beam for Bitcoin, Ethereum, Litecoin, DOGE (and more) in a completely decentralized way without an exchange or third-party intermediary. Atomic Swaps are the pinnacle of decentralization, censorship resistance, and core values of cryptocurrencies.",1783006050366]