From 19c699a467208decf20e5bd93226e9b9e0f073c1 Mon Sep 17 00:00:00 2001 From: Ana Loznianu Date: Thu, 18 May 2023 10:54:07 +0000 Subject: [PATCH] GITBOOK-168: Removed developer tutorials and moved the content in the developers section --- .gitbook/assets/balance-of (1) (1).png | Bin 0 -> 79234 bytes README.md | 2 +- SUMMARY.md | 81 +++++++++--------- developers/README.md | 46 +++++----- developers/architecture.md | 18 ++-- developers/asset-pricing.md | 4 +- .../build-a-marketplace/README.md | 22 ++--- .../customising-your-market.md | 0 .../build-a-marketplace/deploying-market.md | 0 .../forking-ocean-market.md | 0 developers/datanft-and-datatoken.md | 6 +- .../using-ocean-libraries/README.md | 0 .../using-ocean-libraries/configuration.md | 0 .../create-datatoken-with-fixed-pricing.md | 0 .../using-ocean-libraries/creating-datanft.md | 0 .../using-ocean-libraries/mint-datatoken.md | 0 .../using-ocean-libraries/update-metadata.md | 0 .../using-ocean-subgraph/README.md | 0 .../get-data-nft-information.md | 0 .../get-datatoken-information.md | 0 .../using-ocean-subgraph/list-data-nfts.md | 0 .../using-ocean-subgraph/list-datatokens.md | 0 .../list-fixed-rate-exchanges.md | 0 discover/explore.md | 8 +- how-tos/README.md | 2 - infrastructure/setup-server.md | 2 +- tutorials/README.md | 2 - user-guides/README.md | 2 + .../asset-hosting/README.md | 2 +- .../asset-hosting/arweave.md | 0 {how-tos => user-guides}/asset-hosting/aws.md | 0 .../asset-hosting/azure-cloud.md | 18 ++-- .../claim-ocean-rewards.md | 2 +- .../compute-to-data/README.md | 0 .../make-a-boss-c2d-algorithm.md | 0 .../publish-a-c2d-algorithm-nft.md | 2 +- .../compute-to-data/publish-a-c2d-data-nft.md | 2 +- .../get-veocean-tokens.md | 0 {how-tos => user-guides}/how-to-data-farm.md | 0 .../marketplace-download-data-asset.md | 0 .../marketplace-publish-data-asset.md | 4 +- .../remove-liquidity-using-etherscan.md | 4 +- .../using-ocean-market.md | 0 43 files changed, 113 insertions(+), 116 deletions(-) create mode 100644 .gitbook/assets/balance-of (1) (1).png rename {tutorials => developers}/build-a-marketplace/README.md (70%) rename {tutorials => developers}/build-a-marketplace/customising-your-market.md (100%) rename {tutorials => developers}/build-a-marketplace/deploying-market.md (100%) rename {tutorials => developers}/build-a-marketplace/forking-ocean-market.md (100%) rename {tutorials => developers}/using-ocean-libraries/README.md (100%) rename {tutorials => developers}/using-ocean-libraries/configuration.md (100%) rename {tutorials => developers}/using-ocean-libraries/create-datatoken-with-fixed-pricing.md (100%) rename tutorials/using-ocean-libraries/creating-dataNFT.md => developers/using-ocean-libraries/creating-datanft.md (100%) rename {tutorials => developers}/using-ocean-libraries/mint-datatoken.md (100%) rename {tutorials => developers}/using-ocean-libraries/update-metadata.md (100%) rename {tutorials => developers}/using-ocean-subgraph/README.md (100%) rename {tutorials => developers}/using-ocean-subgraph/get-data-nft-information.md (100%) rename {tutorials => developers}/using-ocean-subgraph/get-datatoken-information.md (100%) rename {tutorials => developers}/using-ocean-subgraph/list-data-nfts.md (100%) rename {tutorials => developers}/using-ocean-subgraph/list-datatokens.md (100%) rename {tutorials => developers}/using-ocean-subgraph/list-fixed-rate-exchanges.md (100%) delete mode 100644 how-tos/README.md delete mode 100644 tutorials/README.md create mode 100644 user-guides/README.md rename {how-tos => user-guides}/asset-hosting/README.md (87%) rename {how-tos => user-guides}/asset-hosting/arweave.md (100%) rename {how-tos => user-guides}/asset-hosting/aws.md (100%) rename {how-tos => user-guides}/asset-hosting/azure-cloud.md (69%) rename {how-tos => user-guides}/claim-ocean-rewards.md (90%) rename {how-tos => user-guides}/compute-to-data/README.md (100%) rename {how-tos => user-guides}/compute-to-data/make-a-boss-c2d-algorithm.md (100%) rename {how-tos => user-guides}/compute-to-data/publish-a-c2d-algorithm-nft.md (95%) rename {how-tos => user-guides}/compute-to-data/publish-a-c2d-data-nft.md (95%) rename {how-tos => user-guides}/get-veocean-tokens.md (100%) rename {how-tos => user-guides}/how-to-data-farm.md (100%) rename {how-tos => user-guides}/marketplace-download-data-asset.md (100%) rename {how-tos => user-guides}/marketplace-publish-data-asset.md (98%) rename {how-tos => user-guides}/remove-liquidity-using-etherscan.md (89%) rename {how-tos => user-guides}/using-ocean-market.md (100%) diff --git a/.gitbook/assets/balance-of (1) (1).png b/.gitbook/assets/balance-of (1) (1).png new file mode 100644 index 0000000000000000000000000000000000000000..c99a54acb0c3b9fd5795d30b1babb31ffc81fdb5 GIT binary patch literal 79234 zcmeEtc~q0<*025iTEA+MT1Av8RgNMeq=*b*N*$02A~K1LsZd1-5FtPakkHnH0|=4I zpb&`4JVs=mk}5)wA(1eIDTyY5FeX4qLgt&E?|kQYdhc58z5m{mwX*W&U2op!dG@=1 z`?vS+*|~rDlC#E6ot@jZZPU2$-8oP7$G6+I{iol5eWpIs0Cjz${`maXcYg3~+sq7q zdw-Hx22N0)JQ(M6HO>omBMxyb_WCvi0$~;&4TXnZyLH_R78_Q`v)9?S?dxq9&Ykv7 z#IDex53h{38?6;B*0-K5PrG1Z{4m4C*5+{emzNHjGqU!duetZbn9axoTIg6J=KQIF z-hj3JnL4MA8GLOUa`e!|_m9(G-QO|%X?&NDxBXYAzI&cu(1gC7=9elYhMWC&DK15F!DeG5Ju;Oa*V~!n*b#J6BsWX4R+rGcz;0 zy$<~2YW2YjAIYc3K0fhvfX>s8zyBDCx}lH?mt`IIG?0Q}YeVre4H#Ru*q9C8dVf2( z?(>f?o|MY}W8cRo9-3-g{`mX1EjqG}AB(ScCPZjD zmu0_OWZq}Ln{p;9=v()cwO2c`X?O_pZtllJZtH#v{Ptf4n4)g`^y4djaNYg~lRowD z8?^k}27hzjZIfRuMVTDNr{IrlkUN{a`^J;%o}1PMgCbPR)%`G$t^tzs)SaibvFHth z_<+!LhN~m`cfLrUoqY#A@{t>^ea_Z?`mq=O7#aRMw;!LReHz(#1-v(AKwX#DQ=)R+ik{Z`xTZOn-jtDB7Y9RByB_ zd}+il(38C8YG&Gpk*jiJ40V(0N=<9vK67in`9;|qJYOgD_p!qE293&m#wxRn|4T3B zM20*m*;$A2kl^co=Rq|#0(X0~)8d-= z=%dxN97O*K%>HUMH!d>_P9zWYyHE6;bL9M*IZ5hvfKD z5pNfQ?l{+vkBVPIii0nM_;cc6jJ&ajj7d>^x|ket>#Vg?d^!J~Q^u7t;qI=slaa4B zRU1HxbyTCTO*lxP9xxKJ6cKbSF(?j|4L#%P_;Ro_tt55s2DIoC1 zn-30t_>$NrdA{#Cr80_kj_?A6QVoGZy*UFrixvat1{n>_%`eZpYF2*~YJWUQ{J)Ki zzlHOtxBX`+7<<$iC};a;o8NDkl^o`c;iV(+RsEn#e#*NfL!#sN_6Dsu4 z^vUA4MFn%5+?$+u3nw&|@+Wi=llQZUi0RYWi2C@(_eYP>CQGF0A&n6!ycVy+ke5qq z{T5l(ym6f3htr(08W-F+6|L*AUVBQlf-gf(b(ZI+faVaWc8MW9QzzCiWZH}uiQXQf{vYdRS_ zR3ZfL)<&y~?MyeO?#DT+QBr zJ0Q8I5`N3k#a*CuDYm>LU1`@-yP_jjE}#OM`VcM@_5&{yfZG9vFlU`rMopoU?l6fx-#jotg6r)pZ`8aB)qDSFE^WWDCE$f-)Elwk%7n0hCeP+~76?)cT zV>xQ>47Hip<=TN8E-PT@KU69|#C&AVcYFVwIbTZG?^#p?@0Adwr?V>{$&uFw`tKNE zTc5Q&NsHpigU9TTvlfDqY$~oLzHvBT3hn0S`eZ|vFZMW3P`B3idYPp^uWU8V=-L!V zWiyj13^kT&odcB#;jyNfezeAcPMTY$Lp98GV$w6o;B3;#XUEdf!+Q!{1NcJmQrYRM zEN<{cn#UJYt+CZWjfGc9XQ{GyWzOvmgT@o|RxYE4plO%Kd;7@UzVU<5c2vIV3eP7# z76mjwB>oxCgQrsqRgU6s!!ygNI6GUg?Z@e4%h5jys&#z?vmc)?B*vWP3|5dc&w<1ccuZ@WTIm9FFSVNtG_U5poh^BSjyPoXD@D#8sb(32el9!ZCV z2v_$Ch|tywG5o@c{@3`TT>54E&YL$l(ETtDa>p0xZ9!)xx0f;*gt)7zh7L2WE}@^n zI8;DQ_p)URZ0eW7j~8n-^hddNO#^<{Qw6^FRYd8Ogt0Cz1d z`pmiltbzu-q1le&oJDJ0`0j#v8nnkNXnV51FR+?sNSF~^2yz3a`*+-JR+~F-=s}8* zKd?8Q^`kMusTlpe>qv9fcNu2rV;gXoxOTdDp}wzp+;?BM2Ydd4d#R|MI*P0*IT=CE z^XI|Cfu}6Tjsr67_~iakaSggI=}4+%w&BtWRM*$;sFx1J>p+ zGZr5?_lvndtez}I@t@4(wCp$>ob>kRe*GQp8TQLv-G{AV)Wgl+B|kWrtCV(<41p-& zn|{N)2t=_@ZizGQJ5nhN1iplYk;$)+_ zq8)MYY7zJx7TI$)yHGhO$tDVL0i#LHP0s4PQTejAX&ybUc&D}^US(MXl?727tF*@R zq4GCp4f*myNj8_BNAT@)zYzLaz6grRC6q)fu6LAA7l%0&PktOqzs3JaGP6DGkSNp7 z&fgz;7}xA;x{;yA*}7|_wLQzAv*ld0<5p$=Uj7q32?Oe-Z$6Wfn&lyNwmLb!e}Af8xx~)qcbkrnn^(roi%yA~y@So$ zo=x6V+w_sts;aLkGnwAsLxt<3nEJUCwCGWsz9HpOGJ<<}^-*sbLcn#e2trL9EL)Cd zShM!r^|9u+?+QC#+)irhui$wlea0`7wQSaJq65*8j{Bsc4%3a#JNNl?8tBGMUsz0L zVeLjclcw!V4&xHNJ0==Zxu7;2h* zrxGJ&DZc*R)`~!Xkk}dBS9z>iYY;ryg!ok0V z&fQ{hYN+j^+Nc+$@vAk5f$ptO6Ke>sstQYkfklb=ahjJVg_^lB+6E35KIXcHez}q!g}=K=1|y0eq~CW#BK2jPM)dTi4E3$%*chgwcE@c z%JsUAW*FO}0e+Ffjyg62FC+dteW zTLi_+riHrRAU(vb>9EF2F5P#mE|8ln`g07;K7edtUNwsv3+xm(tx7?BOa#$bJgA)y<2`5hW#8S9y}2F5O^8 zG=Jm}zus8;qhwM#q}Fz5;`lwfFJtEh`fnrjsED+WZn14!_rM>8^nc4I+x{&fZTq(k z)Uf$uKlrU+&J+%q;5Xy{MLPW!xc*02{jKn`n&<~Mi~g^F`ftT^+rL%cZU44`8lwMS z`hhy?Y;!y~(cG@84c2RQS-Y_IY)38@K?-FTyguf1>o{hNFJ+rh6iQS>EhF}iU- zax(g?p%~cmbVHHSUMQ2ao3?*lSkuYxe!fQE@y`U|UE!bE@llUmTo50^fq~`1{#{CO zS~kgQ^M+GoOcBs`H{Vh4xZgtNp4s(&eoyxm>cnQNgnLdYo%P60m2%>HB7VgS)rkOCup_%2(arQGRR~6)Xj^W3l$aJF_MPPGIM%u>wNpBy;+A%onmH= zkG`2rRob0&!0;n!!}mJ{uy6oFdb=tYa|0|Fd;5k}Crtw^6fpw*C zMarvq$b+u6pW{|t5#P~T6F-D!2V`u1k;f<&eR$AGbyVw6iRgGqx0`ikbBey#sLqbv zi}hP^V05y;Cl?ca^)Zi~9zCJk!abBtk-y66cjiwBqpu1$vjgi*P=00?XKJI-*wp&i zYQuI{87sX}gt33|ERK3-Pp)N_a>Dm8rR!v!D#Ld)InD(k{s@RaX0ra&eo|+_;Y`KG zy?*F^$FGo!M1A!$=MKUl_1N%5!&H83S{Wv3T?N z|0mf@iQwn{Q6q?tADbf>)zM@if8hKycbZQ)7}NW_sc+@;s;pG>(>TT)+yok!a>KSb zq3>mXU1zzl-p>Y9*PRr@IT%(hAh*SMa4s}be;Z2KJO7t{v#kmTFr z%LisuMg0`j;Xu2N#Q*697=GdyCcKL;-xUs=1BSE^f&tac}7>H5co zy$6@`pEvkk%9H~&%N*bXF?MlwfPaRFABzQlCf!t98lrIF&@=q9aY+e5oDwn2W$&~> z-H>Y3q=eeWrZV{{Co%(2^J?wT=5~sU znD=Yvs4_r$wdzGTBBPCm$v6ytVOs>Hj&n-|E8a=IYGEwB$-NJkCt4nH-F@Glo%S4B z1IXF}1CZ9S%f^pPddRcMH%D@nd(9rCyv2>S6VS4P==~Q99OVz}MjgVZQ)4*LtmUND zkk#9J!k9&7wIwPN8)Bkbv*r2_(hL> zy(4?61w8|RFD~+@jcLOf_AOn`gQ|vLH$YcYxpc_c?eXLJ)E~fd)f^#P^cov9x@GMM zeo^xQF#d~3IeBQ2f&drt#ybuNdC`3S=>psSgf##AUXb6^%zaMgoFDJ0Y*=~y#Kg_H zQ#Vxf!}Um3!@wr@Zr1&jw=^mrYL3ZqP2Q>^9VtUB0h&i!Wv^ zSiG|t8ZwN+Py{PTYk5yZ0Ox7Fgf1wI_0~7(RDpOUTEIut>T2@|)`q>(i*(OzZFTXpz-C7xV zmhjd30-Nd>s5mp7OhlbnEk;aSslW&1i&#q=Oj-h}H#J#O)(=gOgCPJ@W8-UPr5bh# z-r)kmyWV%|NA9zDJAb0g@_gpXjh>VT6Tph@v9Yy<^AwND*yaV0P(N~vWv`^BNk9i=^+)l-=my9~-ZK)Ro1LQ13)0&o{4F!*f_3(~8aN!!)PY`nFtT9Sd(-CGe0CxW z6VTwcX2o)QdOz_w=c#w^n{WSe*yx_ef1Uh%C~i|Z0-p$j*+RBp2$v)P9S*nk?&2wF44DRnt6`W5wun)CSzsJYt!1)~O10I#}VqJY1gJ2dCPwKdP zTG&0K{B~=#UJp@mMz(tjvp*VniUb7`Y`HMSVNv|%I*DuF(hx{`cp5)1kDw81OfVS@ zAVSTv>WRE%0}mqq%&K`X+H0W(VY%6bPgl&0UXugvI4kaYdvu|kvpPFiHWT)1y;!bl z6n(11T#7muB=%kZkec8{R@rct%b3xSja!^S;uC>J&L4Y(Xn9igyN@Dq%*9^CZw9i#6tf0|sJFNhah8f-`6D?oic?^w-(ngb=BUws5w z)T`h1Mn&ZPj`a&HZ$8!ic4|zs=&|6Q4A(EIiXw64EA9#Tt?ip_TbF6s?6;)z?K8MU zN3JjF4H^fvH|7qOuY{Fo{&wtlE z%#I+OfIX$SjL@p;9<#9`^>}S^Yw*e>%+LJ#7q_ir{Z*dV z3QIy()Px!DHq|Y?3j#NXGUuH24~8avM-za+;*2xT#QZ2tAh&7$i36rpci8z{Z3ba_ z?e%9-9NTTK2Zs1>f6%Nc;9CuZX2sN{Tz~l<+-#;f)@~Y;y*T zpLyZ@3gJ8XY7JXZc(@`}aV?7}b9ykcYp0@Xk;F7xUA$xWoZPc3%8xiVheedKV+}@< z{K-*<2AM5P!Z9v}ajMmuG`5FGMh>^a$daER`==SrcJa&iD*2o2kQMqZ)z6*{I~?V` zSjrPmoS+1d5C%LdMB!iy%t@JG#s8!!@;VwOZJ=gSWTdJD?9BvNcEn{db}H!>2kiTdn@VzJuGz(#NAd{iG_xL z+~s8R_)o%MbPZeHYLG9G1MIWmf(LtD11?rK)x0HfZJMunkTqAfE|YQ5`o$5R^c+2) zZ2D&`Vn`h&+))dK9?FM@Ks<&TK&6@#lT{HJSX=~$<4$dU?Y%JbD1cccU>TvW9&af( z>6;qsU;#&HQ8>b3t_4mSLZ%fPgz~3fw-_EJA0JU0a)pF%opxnV$M$ngTz z$U==IjqiLhi>;XL!pzB+=9rmhI;o$0MN*J_QyjQ6>R?Ye1v?*}(c2r!KfY3BoW=h+ z05%{QeUuSEG^zkWGHtDffjEqN(SG;{kJWa3TpP{=L9(RtdVa@JIhG)XudS35L{fahNKsUeSI4v#arEmWyZr<%u{+>p={Z5pOi_?jw7_WOXKF zN=<+jS6)aLf`~O$6@qi^c!CArJ(dtV>I6zfEY4z$d>RA(x!`T0w|_`(!X2<~;Y7f8 z`aRTCTTCdKO~L?PB>c+9LAaYm$VOLUprnS_FXy@C8w0qdKGjH1yez7Q|z+>S6vkwD%H7?2Q$i+&M2 z+&+2oz%3%mmK0F0NLZ|(hXMN~aDWa2=JpZ!B-(BKp1kLNKNAg|h0nHGvergj0K}Jx z2r^Up;SQFjN^l`N17hD7e!BfSX_q;VDGamDMa%AjRhP+z(mJP)RtIzce{`ddTyfjB z1;`)X<;3qKC(FSb^t{t4Wl+*~B z`OkmYLw&Hl_YcFv{}Db9J)OBku3V4_lqvTt)6$-6Ub0*F-u%Z?{C0TlPa*mt6~>r+BFMSmy!(6Ck8kj_?&eT)Aw`k!SAdGJiL14#qes`kK1!`NuOX}qag zqEKmT4FLNLdE#g*847sddmNJCI$Ji+wvsz>ED?<`Xz%JC?$EXOdm9=vT;_e*dmm_&i7yvcPmv;#K-lgZKto}eJt zRpJnG5o)Tuj}7lyV;jApCDV`jzgTo0j8*b1^g*rI_-JxnXwvxW;+l69V~tyoidP^@ z+*b+<+2kF^x-ugxl&T(^udK~?4giBlemHEg;7vz&q+l8jG7Avh#`+SsBFOs2(u$Zf z4`@#sZ*XQ~uVMmbR2?nzZPE{I(Rp|}RzR+|nJ6!DygHpCdJ==O(yS{dtb!a>w_nG1 z*!GEAg65{0$B1E~rqo@6*X%UumF~;Oo5KT!_6jr2DemD#PXsHEl5JG2uoI|2Ns)7G zu&{AKTogY-947T0C{kqG@XFgRit8J1IjW9iA)G#>5IoyTck64>NINcJgwgY*5qQ<) zRGwu_imPv*Wm934=aj;PKURue1XTH~k*o@sLAm#K_>vL4DTJQ@lbCOa7{K6~IhP+|r*#TJ%~PxiFB?P5pfz!L zrU86m;O;J{pkqrZv>q(fn~u9ku1nQH(XBrGItzr!V(hI?`0efX#MWd8;zp)-)KetW z@uRLp)4&5Wd|_}Ke&77yc1z!h0l7yNQ}Zg0e~;h+PrawF2x^y zNf$CbFP>-4{2f_|0e>zvx^-*$sygS%4}zzX@fheZQYyo|ZAUMAsT0gsaw_49Vxs^H z1Et1Bj#|4p9E*!iSNe$-8bQ`>pmOhea_+?aks0TR%H;IKi(<+aF z6|;H)q|N6jMQH(n=L4=#D>hg!c0GevW6i?Cw%(>=0e*;cRbx#htduM9bd6|ALy6~; z;XzjbUNIX4!t1BRkw@L{+uKGBBZULURIMg#`=Ir4S9r8tZ9$*tQGJ_ZUXV(HDc+0giX$6zi9gY9H!paSk3Pgj8fDhLlNJvjG0x>aDyAIy6yJ-KQge5?f*t6$ z&X6qvI*GUx4*7sl4O$C%4aPsROCUj|s)X2l!j~latc?X%Q0}ud6VZ#t5v`>kvhJ4X zFHU|ALd%D)T6?)vQ6pc@O)W5;(fdNfLtIyu-%&eWfZxX zTERrLA`)aM83izioYG_!N3h1)juwbYcy!p6t!J;LUGm|!8(~GtSJ(jE0l|vYD1<>+ z9cZ(@YEA4AzC0cfN^GSYQ1CS~yJ%6+q4B7>0M4|>HNr|w`^mD66iG`FI5>m*UJHD0 zxe6XDd6L5F{H&t*=7RDUdW|WD)c7uce_!*Y;M8t&F3x@*`})*b zS9Pgbpw0fk+A03r5{|pttblkWgJw1#J$449exuZnmW-}@GuF@Lgo8j6^*Npq4mP{L z`a9%0=KfRy^#1!Mhl)AZy!o#1m39!Y>q9NJa5;UZPdrLO6PjqQ1e7~@@J7lZ?o>(A z=*0HY8Vgd^skTio6umf2>=hK6Wu%(REyK-U7Reko70?=zaKb&j|u}cFiqWzwF(PGZP?_Gb8Qq?(Q@7rWhApm4c`c$BXi8U|P zjQa?fby8TE&+Xbu9wE#(!iIjs7tqH8B0XhNQ9{_T1~E6+5b$6{gKKQGDHh|#yiW)c z`Ab+`iLWd@&Zb$0iU7{4;EnbJuC4}{nACCO5#O0B=$a-4N;gF2N1OdBzSaA{sW5#U zTVJqKu!txglI-=W$hQi=iDBl=>Tbr7&E*{>?g&nvX9 z_-eTFz^|Z&$-m)_uq?il*9N>`Tvp?sG{Imwj2Nb&A=W}UmQvrsOjn@Mnlcp0s|>Tt z46`iB-f@LvFDrem@Ozd*q#Q|$4>O4~C|=pQt^kn-uW&oy`tywAuW0 zI11@L9#E7fD?+TOP>?b;edV${NTEqUX*(0qqJ92G1J6YBB7MdHLkK1u+5ch6nq;5w z;jaTTtp6RX@BI|$0>=N+H&mo}|rC6WWdH&V!Mz-ad!f!8ipymIIs zi3FmmPeDZEflsKx^MkjqDUU6=5&0+V?X=F%Zf1xQkK&pjrZY8J!nv>tC@dqHPc!P( zK@ZB?aD|>9K-E7u4+Xgr;zAcIWc%MFS@Zf|I|v_-b>DtJ)ee~$bCIr1y?kD04n~Vp z-(Z;=+;zT{J~OKwImMo9uNO9D@2I@?cX-`;|K}t&oBxVRJx=lguMQzuM&;buz*au} zR4eMmCUT&am@8NspMe*nk~p&ZPIK;@26sNCC)Wcp8oV^y5_^rDPZvaxqkID&3DO?z zAbn<6JQ(x#XD1LasMC_0Rewg3<2l-30aw^P?> zlfGZ&4ouU4>V(ibFAp8CekO2-ej0q-X7R6Bu%q}nHq0&JSR_4rl+4s382FudEqxt_l_rg6CJw(y_wRT5Re?NaWnN0>3RnLt%Ly}iDweD2CN?pG?ban zKh6M;_)kZ{7h~_6cd+g@Fkg)-ZMhbGtDRLEUKAioxiN-@KWNtZn;GOqrJ!THPUL97J`~y5lQW>1E`iwbm&!)bXcP&il(L^r^V+LZ! z41QoXyyr;_BuO+F15Oy#?XJ7^buWh?!tJCDzueGk{?JT*U13AfV23;?axmhVlI>b# z=KkSoKAUUfEk3SiO;r$AA~6kxI;^XA^(&An^f(a1J=SF9Mw4n#?RxeDQTUvrvnsww3&S6NEz-<-Tm3vuMPf7=9*etwd4KN%l3hQ+2JXE%9IN^1)Z8(SzaUsVl2Y%HN^)bpIbi@Apzv?dk3GZM)AD1`n;5Sv$|C zyq?Ua=hjDVZBa?{ePpb!A{H*cjEKu>1Y!-YJ0jf42()Soi??fjm$h2s5`;;0$}A9|mP@*|gOlUQVO7OBh=* z5wFQWGkTyVv0aPO&R9m=kW*O*O)(q;!tm0UL+64rVhL<%f6xBF0{F}tbH1z5K{WO5 z-R0^MlmHF_D+F~Q#6+*YL$lboy6G9TZk%})%%c@@Q*XrIplck%`i#Bqz2?6Rl zsZJ;c)a;8sGJihKGl+7pv8_DSUa;$w#nB;Ye6u@R~%Jy%BsJ#gd6B`8`;`Gu9{d} z-1W5CN6K=h`+R&ZOg5X7aLSW}X#40Ca*247lbg>lySIID=rQa@=3>+lhoz3SBuDmyy<;SWNaPtR(#;w$Q zSHzje0>ccJW6WFM5@rGao~&r%4hplFljK-m697nVp==KiOa5>Jb~DgR2zz7MltAyp zw#Mz_&17K%r+o+iiUKn&0lLscL3a#9wuLFVeWSP|U$Jse_8ccaOo*0Vw%=~WZ`3j_ zgQ%hObFy_l+Lp)Cg-0hNn${T+qJXy|k_$lf0m5Rey&jByD@pHRIi}DNtYFprj*yE? zD=VHW-nQ%;O~O9-b(dW3Ao__3)ae=1M2K|hUKVGGCR;3e#XSsN zgDmw3#<~2z?%c`dWap05_w8jfHOejDSTd0jO|bPkbADM4^`)@EjQqsA>dfEqT8uTh4%yWg>exF@2jOl+V6lMx#Ym=Xl#b_pKqg{8i<+WoZLKZLh?u>!RSeU=nhi9_BtQ?09{{gR7O-1_MvP6lfdztb?!~MqFJLqA zA^R7*=c&O@zOmz)Op81REijy|_Z`P*33Eq4l!B9OGj6)&#kqp6#?Ta{&;gS(P-mn1 z>!feG64~8&`KID5D0rjDru>?7pG3C>4kwH0Ud8x4tj=opoP`G@G+odRch12B^hq6H z?$c+7TB_Yg>S?>;OM672q)!8`^a+KT<1xFZ&5Cl>+Rp3G(u6m{p26;BF3@{Hwa?n# z?^{|J5B72~7Bx%NI*wLnNcR(XLLj%S*{G}u?i`8JIm(%w9Hou#B3Yk^&qF7noRdFz zrJ?nH1;wZ~>zTHF7#Pdw)&8@~?aCLidRlvKXs zk8dJf9Qb0E<=9BGIk%Hb>PEU4$CtNd?bg=`RSE0TlIsjZf+Q>4(7+ZgKul||j&h(r zcE%Z_i-W`X5b4FtS)={5(VX4y3Zxe$2iLx}57>`0@p1{jk|r!g2{l6sX(8K&<&Su( zpc=G)U;seRk3jTqu;)R|u-+e-z5m0`=l__Uf9oHz*^29$(#(xp?d*Tk2z)DfUBTtb zGog6QnE>a!mM17hJIMW@|1}aZ$()pLyMvoDmYg+-C=tDr6U6g@5OE;IiZ@-rrkYSp z6irPe)6a!QPDF=W*P$uQ3>2@`acMbNC@`=^L{X4j-P>Z%mpfrC+({3;(fD;mhcKpi zv~q7O*5>(uZQmPE*Ve`aZ!pgC4VnqKo}dXX_g-1SxM5;7(f}RL-LIIYFE7t0!_@VW zZ2!DH{yJE?+FTI=v1SwtUNTYNa0l^rCeyyYNZ$afu7`q_eehpj1X1R@5>^S$DbCks z?pP19Bj~`x6rCBr$)k~5ew<}Ok}G+1VAQi^@x!t!4yc$90;RIwu;GLd|7V$H?Jx7$ zLVc|ke2Amj@(I-R+N}qVC`^6sjadneBcFO?66ca8EN>O~pn|SxrrFvm;UlQ!2hhYh zeaKr$%lKW6{qlgTA*QOU#?cO!OIC;Ec;U)1S=gmn3`%&7=zHCF$ip>1YN%b}9_m(f z1#2yKeK2_ELyX%gt1HJCUvfi3NFu7cJGkKlSJu~8Af2)>BF(35C>-+R_TRbYOzXqa znklAHv4gL#<`=lI|B{868;;RT91Rk4k()MRXn1XEqqtlZs?;js4BqqJXUq8(-^7Su%{@UbZ|c zX}-$4X`^{7N?d={-4-&X7a!Lv?lid=ZrSYEf*)9)#?(!_zAAollDiCIZe+JTzuOJu z8O`XNpPNmZSm}4(hcTAIN5$IZ&!PMW$=N^#KtOsfAZc4+B#HEnt6T^^qa%Q!JCg;y z*O2e&avRZIAXvhwv-n`M+5AgOO1(%a?>RO<(!q>7$i-bgPFr4Vx6^p!3aIdgYtVXA z>|-MJyhy4P5Z5#G^VdcK>*M-Z9IlRSZ%qv2B3dq$SprZPrei`>|SMVuVwQ0n$%Vp|3WcR# zWXlOh-|`%4ZBIJxc`6`4`2%^C9dd$v!rkfG+6ahjbKQHf!r1`z7w$OjUToctA71`_ z%k4+PpOk~%dx4t{abHzgaI?rf7rv7(@^(?@VNHXi@5X$?WgUjGSkUqomftOTi?ypD ztDT^)^pz}{Mi%MW?QGW6_3v#-u1pP!WWLCcrRzTNS~fB}t~klQSKN98ihUT`OIQV> z#%SHk+#Ju}v?E;Vbu#=YpF*zQ6G~Jd(w3jbMG2pEtb@qXp(EKf48k}2fof*Y1$S6- zjZ)=ja$um2YI+MEk|%JpX5a)JV71Vcj|Z7>jSZ`z(K7NGTtd`vOs@lTNMba;dR#Yl zvVViilKTL-b%}14xRVy#@VVj6ar@94i-M-)lGM}=QSWQbhQ@1W*~?kXUZFQOsHU52 zm!N1_Gd};l!mehr?H#3NKhs~jIL~*6ULtG_f>K+e#t1W4+m0^n!bcJbH7Lx_K5@5R zky)ZN+dDp;w^u21ZJcr&Mp-~8^|4yqP&4^ux|T!a&1Xio8G=yF)#|P&)LE^@ABdFu zKF8Ei8#Tipzo}Z^!1^|6FG1~|cd}#^W@NWP=TJHmhi0~%lyWUvot4v-0kH&D=>kq! z?D`o^n*gkxHNskTH{r`WT$mS{wCzKe5Ty-gw;y{Q;thwKj85PKX|XIzUkPU43g zf{w);C_>1(nrdKoVqzpfRjWyIx4hFQO=0B5fWN5=0gH=7VIf5-d7b85*P&e5_XEjn zc<4I%1u8i!7XT7Dl#6Ex1u^s*p?O&>k&@AgH||~$Uvu8i72Nb4#PzmERYkZrL2lWL& z9ObYg?h7|}hnUwn*U2!`M|&R=wl=ju6x28M&v22rY(edw7-sx}fy!w_S{JYjCq)id zma4(Uw)gRO_p<#48nLL>YqxJif=ZzjpSoKb(OK(_D^tgOnfoXVF@tbSsm~0aenevL&k9D&QnRgEl$xo zcE?vo>$$OA;u-fjd--HZ$&iIO-%8SlaqpL;KRVvj;7Gu`>x1|!3n%vJbn!)HIkwX! z?$e#s(|;Ko=h{ds_qu@H3TJyz?@8`FG`1M@oGYuVTwc?2*385s zL~&sL0Y9lt?F+nhg4R6k)S)HaAe+yL>eM#xb^JFC1CFzsHIszUwLKtf--4{p=kkG1 zAw!auu-!l{JAOv~`T84C$8_{$5z!CuG~&y6%+JoHsF~tXlYm_cQ2C4U)jE8_8(TQ3 zxpltlIr;|K7o`?8D{|e#dKRX zl-p~ATv-o;^B&)dCIc#23D>_q)lℜDNAzBA5=_B@Q;ym<{w~8US|JWysnU)Gwoe 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 6ab23036..3faf54b9 100644 --- a/README.md +++ b/README.md @@ -7,4 +7,4 @@ layout: landing # đź‘‹ Welcome -
discover.mdLearn about Ocean Protocol's powerful data-sharing capabilities and its potential to transform the way data is shared and monetized.discover.mdocean.png
how-tosWhether you're new to Ocean or just need a refresher on a particular task, the "How to's" section is a great resource for quickly finding the information step-by-step instructions for what you need.how-tosdevelopers.png
tutorialsGet access to a wealth of tutorials and resources to help you get started with Ocean Protocol. Learn how to create and publish data assets, build data marketplaces, and more. Whether you're a beginner or an experienced user, there's something for everyone.tutorialstutorials.png
rewardsDiscover ways to earn rewards for contributing to the Ocean Protocol ecosystem. Explore bounty programs, grants, and other initiatives that can help you make an impact and earn recognition for your contributions.rewardsrewards.png
developersWhether you're building a dApp or integrating with the ecosystem, you'll find plenty of APIs, libraries, and other tools to help you get the job done.developersdevelopers.png
infrastructureLearn how to deploy your own components on the Ocean Protocol network. Discover how the platform leverages blockchain technology, decentralized storage, and other cutting-edge tools to enable secure and scalable data sharing.infrastructurebuilding-blocks.png
contributing.mdLearn how you can contribute to the growth and development of Ocean Protocol. Whether you're interested in community initiatives, open-source projects, or other opportunities, there are many ways to get involved and make a difference.contributing.mdcontribute.png
defi.mdDeFi (Decentralized Finance) has taken the financial world by storm, and Ocean Protocol has been at the forefront of this movement. In this category, you'll find a wealth of tutorials and guides on various DeFi topics.rewards.png
data-science.mdData science is the key to unlocking the true potential of decentralized data sharing. In this category, you'll find an abundance of tutorials and guides on various data science topics.tutorials.png
+
discover.mdLearn about Ocean Protocol's powerful data-sharing capabilities and its potential to transform the way data is shared and monetized.discover.mdocean.png
user-guidesWhether you're new to Ocean or just need a refresher on a particular task, the "How to's" section is a great resource for quickly finding the information step-by-step instructions for what you need.user-guidesdevelopers.png
Broken linkGet access to a wealth of tutorials and resources to help you get started with Ocean Protocol. Learn how to create and publish data assets, build data marketplaces, and more. Whether you're a beginner or an experienced user, there's something for everyone.Broken linktutorials.png
rewardsDiscover ways to earn rewards for contributing to the Ocean Protocol ecosystem. Explore bounty programs, grants, and other initiatives that can help you make an impact and earn recognition for your contributions.rewardsrewards.png
developersWhether you're building a dApp or integrating with the ecosystem, you'll find plenty of APIs, libraries, and other tools to help you get the job done.developersdevelopers.png
infrastructureLearn how to deploy your own components on the Ocean Protocol network. Discover how the platform leverages blockchain technology, decentralized storage, and other cutting-edge tools to enable secure and scalable data sharing.infrastructurebuilding-blocks.png
contributing.mdLearn how you can contribute to the growth and development of Ocean Protocol. Whether you're interested in community initiatives, open-source projects, or other opportunities, there are many ways to get involved and make a difference.contributing.mdcontribute.png
defi.mdDeFi (Decentralized Finance) has taken the financial world by storm, and Ocean Protocol has been at the forefront of this movement. In this category, you'll find a wealth of tutorials and guides on various DeFi topics.rewards.png
data-science.mdData science is the key to unlocking the true potential of decentralized data sharing. In this category, you'll find an abundance of tutorials and guides on various data science topics.tutorials.png
diff --git a/SUMMARY.md b/SUMMARY.md index fabc7ee6..409d3de5 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -11,47 +11,22 @@ * [Manage Your OCEAN Tokens](discover/wallets-and-ocean-tokens.md) * [Glossary](discover/glossary.md) * [FAQ](discover/faq.md) -* [📜 How To's](how-tos/README.md) - * [Publish an NFT](how-tos/marketplace-publish-data-asset.md) - * [Download NFT Assets](how-tos/marketplace-download-data-asset.md) - * [Sell NFT Outputs](how-tos/compute-to-data/README.md) - * [Make a Boss C2D Algorithm](how-tos/compute-to-data/make-a-boss-c2d-algorithm.md) - * [Publish a C2D Algorithm NFT](how-tos/compute-to-data/publish-a-c2d-algorithm-nft.md) - * [Publish a C2D Data NFT](how-tos/compute-to-data/publish-a-c2d-data-nft.md) - * [Host Assets](how-tos/asset-hosting/README.md) - * [Arweave](how-tos/asset-hosting/arweave.md) - * [AWS](how-tos/asset-hosting/aws.md) - * [Azure Cloud](how-tos/asset-hosting/azure-cloud.md) - * [Get veOCEAN Tokens](how-tos/get-veocean-tokens.md) - * [How to Data Farm](how-tos/how-to-data-farm.md) - * [Claim OCEAN Rewards](how-tos/claim-ocean-rewards.md) - * [Guide to Ocean Market](how-tos/using-ocean-market.md) - * [Liquidity Pools \[deprecated\]](how-tos/remove-liquidity-using-etherscan.md) -* [📚 Developer Tutorials](tutorials/README.md) - * [Build a Marketplace](tutorials/build-a-marketplace/README.md) - * [Forking Ocean Market](tutorials/build-a-marketplace/forking-ocean-market.md) - * [Customising a Market](tutorials/build-a-marketplace/customising-your-market.md) - * [Deploying a Market](tutorials/build-a-marketplace/deploying-market.md) - * [Using Ocean Subgraph](tutorials/using-ocean-subgraph/README.md) - * [List data NFTs](tutorials/using-ocean-subgraph/list-data-nfts.md) - * [List all Tokens](tutorials/using-ocean-subgraph/list-datatokens.md) - * [Get Data NFT Information](tutorials/using-ocean-subgraph/get-data-nft-information.md) - * [Get Datatoken Information](tutorials/using-ocean-subgraph/get-datatoken-information.md) - * [List Fixed Rate Exchanges](tutorials/using-ocean-subgraph/list-fixed-rate-exchanges.md) - * [Using Ocean Libraries](tutorials/using-ocean-libraries/README.md) - * [Configuration](tutorials/using-ocean-libraries/configuration.md) - * [Creating a data NFT](tutorials/using-ocean-libraries/creating-dataNFT.md) - * [Publish with Fixed Pricing](tutorials/using-ocean-libraries/create-datatoken-with-fixed-pricing.md) - * [Mint Datatokens](tutorials/using-ocean-libraries/mint-datatoken.md) - * [Update Metadata](tutorials/using-ocean-libraries/update-metadata.md) -* [🤑 DeFi](defi.md) -* [💰 Rewards](rewards/README.md) - * [Data Farming 101](rewards/df-intro.md) - * [veOCEAN](rewards/veocean.md) - * [Data Farming Background](rewards/df-background.md) - * [Emissions & APYs](rewards/emissions-apys.md) - * [Rewards Tutorial](rewards/veOcean-Data-Farming-Tutorial.md) -* [📊 Data Science](data-science.md) +* [📚 User Guides](user-guides/README.md) + * [Publish an NFT](user-guides/marketplace-publish-data-asset.md) + * [Download NFT Assets](user-guides/marketplace-download-data-asset.md) + * [Sell NFT Outputs](user-guides/compute-to-data/README.md) + * [Make a Boss C2D Algorithm](user-guides/compute-to-data/make-a-boss-c2d-algorithm.md) + * [Publish a C2D Algorithm NFT](user-guides/compute-to-data/publish-a-c2d-algorithm-nft.md) + * [Publish a C2D Data NFT](user-guides/compute-to-data/publish-a-c2d-data-nft.md) + * [Host Assets](user-guides/asset-hosting/README.md) + * [Arweave](user-guides/asset-hosting/arweave.md) + * [AWS](user-guides/asset-hosting/aws.md) + * [Azure Cloud](user-guides/asset-hosting/azure-cloud.md) + * [Get veOCEAN Tokens](user-guides/get-veocean-tokens.md) + * [How to Data Farm](user-guides/how-to-data-farm.md) + * [Claim OCEAN Rewards](user-guides/claim-ocean-rewards.md) + * [Guide to Ocean Market](user-guides/using-ocean-market.md) + * [Liquidity Pools \[deprecated\]](user-guides/remove-liquidity-using-etherscan.md) * [👨💻 Developers](developers/README.md) * [Architecture Overview](developers/architecture.md) * [Data NFTs and Datatokens](developers/datanft-and-datatoken.md) @@ -62,6 +37,22 @@ * [DDO Specification](developers/ddo-specification.md) * [Storage Specifications](developers/storage-specifications.md) * [Fine-Grained Permissions](developers/Fine-Grained-Permissions.md) + * [Build a Marketplace](developers/build-a-marketplace/README.md) + * [Forking Ocean Market](developers/build-a-marketplace/forking-ocean-market.md) + * [Customising a Market](developers/build-a-marketplace/customising-your-market.md) + * [Deploying a Market](developers/build-a-marketplace/deploying-market.md) + * [Using Ocean Subgraph](developers/using-ocean-subgraph/README.md) + * [List data NFTs](developers/using-ocean-subgraph/list-data-nfts.md) + * [List all Tokens](developers/using-ocean-subgraph/list-datatokens.md) + * [Get Data NFT Information](developers/using-ocean-subgraph/get-data-nft-information.md) + * [Get Datatoken Information](developers/using-ocean-subgraph/get-datatoken-information.md) + * [List Fixed Rate Exchanges](developers/using-ocean-subgraph/list-fixed-rate-exchanges.md) + * [Using Ocean Libraries](developers/using-ocean-libraries/README.md) + * [Configuration](developers/using-ocean-libraries/configuration.md) + * [Creating a data NFT](developers/using-ocean-libraries/creating-datanft.md) + * [Publish with Fixed Pricing](developers/using-ocean-libraries/create-datatoken-with-fixed-pricing.md) + * [Mint Datatokens](developers/using-ocean-libraries/mint-datatoken.md) + * [Update Metadata](developers/using-ocean-libraries/update-metadata.md) * [Compute to data](developers/compute-to-data/README.md) * [Architecture](developers/compute-to-data/compute-to-data-architecture.md) * [Datasets & Algorithms](developers/compute-to-data/compute-to-data-datasets-algorithms.md) @@ -71,6 +62,7 @@ * [Aquarius](developers/apis/aquarius.md) * [Provider](developers/apis/provider.md) * [Subgraph](developers/apis/subgraph.md) +* [📊 Data Science](data-science.md) * [🔨 Infrastructure](infrastructure/README.md) * [Setup a Server](infrastructure/setup-server.md) * [Deploying Marketplace](infrastructure/deploying-marketplace.md) @@ -79,6 +71,13 @@ * [Deploying Ocean Subgraph](infrastructure/deploying-ocean-subgraph.md) * [C2D - Minikube Environment](infrastructure/compute-to-data-minikube.md) * [C2D - Private Docker Registry](infrastructure/compute-to-data-docker-registry.md) +* [🤑 DeFi](defi.md) +* [💰 Rewards](rewards/README.md) + * [Data Farming 101](rewards/df-intro.md) + * [veOCEAN](rewards/veocean.md) + * [Data Farming Background](rewards/df-background.md) + * [Emissions & APYs](rewards/emissions-apys.md) + * [Rewards Tutorial](rewards/veOcean-Data-Farming-Tutorial.md) * [🤝 Contribute](contribute/contributing.md) * [Partners & Collaborators](contribute/projects-using-ocean.md) * [Contributor Code of Conduct](contribute/code-of-conduct.md) diff --git a/developers/README.md b/developers/README.md index 6bc46f73..4f5a36c1 100644 --- a/developers/README.md +++ b/developers/README.md @@ -1,4 +1,4 @@ -# Core concepts +# 👨💻 Developers ## What is Ocean? @@ -6,14 +6,14 @@ Ocean provides the next generation of tools to unlock data at a large scale. Oce Ocean uses Data NFTs (ERC721) and datatokens (ERC20) as the interface to connect data assets with blockchain and DeFi tools. Crypto wallets become data wallets, crypto exchanges become data marketplaces, DAOs for data co-ops, and more via DeFi composability. -![Creating a New Data Economy](../../.gitbook/assets/architecture/feature-datascience@2x.webp) +![Creating a New Data Economy](../.gitbook/assets/architecture/feature-datascience@2x.webp) The following guides are a greate place to start if you are new to Ocean: * [Architecture Overview](architecture.md) * [Data NFTs and Datatokens](datanft-and-datatoken.md) -* [Publish a data asset](../../how-tos/marketplace-publish-data-asset.md) -* [Download a data asset](../../how-tos/marketplace-download-data-asset.md) +* [Publish a data asset](../user-guides/marketplace-publish-data-asset.md) +* [Download a data asset](../user-guides/marketplace-download-data-asset.md) ## What is our Mission? @@ -33,25 +33,25 @@ Use Ocean Market to publish and sell data, or browse and buy data. Data is publi As a data scientist or AI practitioner, you can benefit from access to more data (including private data), crypto-secured provenance in data & AI training, and income opportunities for selling data and curating data. -![Decentralized Exchange Marketplaces](../../.gitbook/assets/architecture/feature-marketplaces@2x.webp) +![Decentralized Exchange Marketplaces](../.gitbook/assets/architecture/feature-marketplaces@2x.webp) The following guides will help you get started with buying and selling data: -* [Publish a data asset](../../how-tos/marketplace-publish-data-asset.md) -* [Download a data asset](../../how-tos/marketplace-download-data-asset.md) -* [Publishing with hosting services](../../how-tos/asset-hosting/) +* [Publish a data asset](../user-guides/marketplace-publish-data-asset.md) +* [Download a data asset](../user-guides/marketplace-download-data-asset.md) +* [Publishing with hosting services](../user-guides/asset-hosting/) ### Build Your Own Data Market Use Ocean Protocol software tools to build your own data marketplace, by either forking [Ocean Market](https://v4.market.oceanprotocol.com/) code or building up with Ocean components. -![Ocean Market Homepage](../../.gitbook/assets/market/ocean-market-homepage.png) +![Ocean Market Homepage](../.gitbook/assets/market/ocean-market-homepage.png) If you're interested in starting your own marketplace checkout the following guides: -* [Forking Ocean Market](../../tutorials/build-a-marketplace/forking-ocean-market.md) -* [Customising your market](../../tutorials/build-a-marketplace/customising-your-market.md) -* [Deploying your market](../../tutorials/build-a-marketplace/deploying-market.md) +* [Forking Ocean Market](build-a-marketplace/forking-ocean-market.md) +* [Customising your market](build-a-marketplace/customising-your-market.md) +* [Deploying your market](build-a-marketplace/deploying-market.md) ### Manage datatokens and data NFTs for use in DeFi @@ -61,7 +61,7 @@ Use Ocean [JavaScript](https://github.com/oceanprotocol/ocean.js) or [Python](ht Ocean-based apps make data asset on-ramps and off-ramps easy for end users. Ocean smart contracts and libraries make this easy for developers. The data itself does not need to be on-chain, just the access control. -![New Data on-ramp and off-ramp](../../.gitbook/assets/architecture/new-ramp-on-crypto-ramp-off.webp) +![New Data on-ramp and off-ramp](../.gitbook/assets/architecture/new-ramp-on-crypto-ramp-off.webp) Data NFTs are ERC721 tokens representing the unique asset and datatokens are ERC20 tokens to access data services. Each data service gets its own data NFT and one or more type of datatokens. @@ -81,7 +81,7 @@ Compute-to-data resolves the tradeoff between the benefits of using private data The most valuable data is private data — using it can improve research and business outcomes. But concerns over privacy and control make it hard to access. With Compute-to-Data, private data isn’t directly shared but rather specific access to it is granted. -![Compute-to-data](../../.gitbook/assets/architecture/feature-compute@2x.webp) +![Compute-to-data](../.gitbook/assets/architecture/feature-compute@2x.webp) It can be used for data sharing in science or technology contexts, or in marketplaces for selling private data while preserving privacy, as an opportunity for companies to monetize their data assets. @@ -91,9 +91,9 @@ Checkout these guides if you are aiming to get a deeper understanding on how com * [Architecture](compute-to-data-architecture.md) * [Datasets & Algorithms](compute-to-data-datasets-algorithms.md) -* [Minikube Environment](../../infrastructure/compute-to-data-minikube.md) +* [Minikube Environment](../infrastructure/compute-to-data-minikube.md) * [Writing Algorithms](compute-to-data-algorithms.md) -* [Private docker registry](../../infrastructure/compute-to-data-docker-registry.md) +* [Private docker registry](../infrastructure/compute-to-data-docker-registry.md) ## How does it work? @@ -103,23 +103,23 @@ Ocean Protocol provides tools for developers to _build data markets_, and to _ma If you are new to web3 and blockchain technologies then we suggest you first read these introductory guides: -* [Wallet Basics](../../discover/wallets.md) -* [Set Up MetaMask Wallet](../../discover/metamask-setup.md) -* [Manage Your OCEAN Tokens](../../discover/wallets-and-ocean-tokens.md) +* [Wallet Basics](../discover/wallets.md) +* [Set Up MetaMask Wallet](../discover/metamask-setup.md) +* [Manage Your OCEAN Tokens](../discover/wallets-and-ocean-tokens.md) If ou are looking to get to grips with the inner workings of Ocean, then you'll be interested in the following guides: * [Architecture Overview](architecture.md) * [Data NFTs and Datatokens](datanft-and-datatoken.md) -* [Networks](../../discover/networks/) +* [Networks](../discover/networks/) * [Fees](fees.md) * [Asset pricing](asset-pricing.md) * [DID & DDO](did-ddo.md) * [Roles](roles.md) -* [Set Up a Marketplace](../../tutorials/build-a-marketplace/marketplace.md) +* [Set Up a Marketplace](../tutorials/build-a-marketplace/marketplace.md) * [Compute-to-Data](compute-to-data/) -* [Deploying components](../../infrastructure/) -* [Contributing](../../contribute/contributing.md) +* [Deploying components](../infrastructure/) +* [Contributing](../contribute/contributing.md) ## Supporters diff --git a/developers/architecture.md b/developers/architecture.md index c17db20b..5f1efbde 100644 --- a/developers/architecture.md +++ b/developers/architecture.md @@ -9,16 +9,16 @@ description: Data NFTs and datatokens architecture Here is the Ocean architecture. -![Ocean Protocol tools architecture](../.gitbook/assets/architecture/architecture.png) +![Ocean Protocol tools architecture](.gitbook/assets/architecture/architecture.png) Here’s an overview of the figure. -- The top layer is **applications** like Ocean Market. With these apps, users can onboard services like data, algorithms, compute-to-data into crypto (publish and mint data NFTs and datatokens), hold datatokens as assets (data wallets), discover assets, and buy/sell datatokens for a fixed or auto-determined price (data marketplaces), and use data services (spend datatokens). -- Below are **libraries** used by the applications: Ocean.js (JavaScript library) and Ocean.py (Python library). This also includes middleware to assist discovery: - - **Aquarius**: Provides metadata cache for faster search by caching on-chain data into elasticsearch - - **Provider**: Facilitates downloading assets, DDO encryption, and communicating with `operator-service` for Compute-to-Data jobs. - - **The Graph**: It is a 3rd party tool that developers can utilize the libraries to build their custom applications and marketplaces. -- The lowest level has the **smart contracts**. The smart contracts are deployed on the Ethereum mainnet and other compatible networks. Libraries encapsulate the calls to these smart contracts and provide features like publishing new assets, facilitating consumption, managing pricing, and much more. To see the supported networks click [here](networks.md). +* The top layer is **applications** like Ocean Market. With these apps, users can onboard services like data, algorithms, compute-to-data into crypto (publish and mint data NFTs and datatokens), hold datatokens as assets (data wallets), discover assets, and buy/sell datatokens for a fixed or auto-determined price (data marketplaces), and use data services (spend datatokens). +* Below are **libraries** used by the applications: Ocean.js (JavaScript library) and Ocean.py (Python library). This also includes middleware to assist discovery: + * **Aquarius**: Provides metadata cache for faster search by caching on-chain data into elasticsearch + * **Provider**: Facilitates downloading assets, DDO encryption, and communicating with `operator-service` for Compute-to-Data jobs. + * **The Graph**: It is a 3rd party tool that developers can utilize the libraries to build their custom applications and marketplaces. +* The lowest level has the **smart contracts**. The smart contracts are deployed on the Ethereum mainnet and other compatible networks. Libraries encapsulate the calls to these smart contracts and provide features like publishing new assets, facilitating consumption, managing pricing, and much more. To see the supported networks click [here](core-concepts/networks.md). ### Data NFTs, Datatokens and Access Control Tools @@ -52,9 +52,9 @@ Complementary to Ocean Market, Ocean has reference code to ease building **third ### Metadata Tools -Marketplaces use the Metadata of the asset for discovery. Metadata consists of information like the type of asset, name of the asset, creation date, license, etc. Each data asset can have a [decentralized identifier](https://w3c-ccg.github.io/did-spec/) (DID) that resolves to a DID document (DDO) for associated metadata. The DDO is essentially [JSON](https://www.json.org/) filling in metadata fields. For more details on working with OCEAN DIDs check out the [DID concept documentation](did-ddo.md). The [DDO Metadata documentation](did-ddo.md#metadata) goes into more depth regarding metadata structure. +Marketplaces use the Metadata of the asset for discovery. Metadata consists of information like the type of asset, name of the asset, creation date, license, etc. Each data asset can have a [decentralized identifier](https://w3c-ccg.github.io/did-spec/) (DID) that resolves to a DID document (DDO) for associated metadata. The DDO is essentially [JSON](https://www.json.org/) filling in metadata fields. For more details on working with OCEAN DIDs check out the [DID concept documentation](broken-reference). The [DDO Metadata documentation](broken-reference) goes into more depth regarding metadata structure. -[OEP8](did-ddo.md) specifies Ocean metadata schema, including fields that must be filled. It’s based on the public [DataSet schema from schema.org](https://schema.org/Dataset). +[OEP8](broken-reference) specifies Ocean metadata schema, including fields that must be filled. It’s based on the public [DataSet schema from schema.org](https://schema.org/Dataset). Ocean uses the Ethereum mainnet and other compatible networks as an **on-chain metadata store**, i.e. to store both DID and DDO. This means that once the transaction fee is paid, there are no further expenses or devops work needed to ensure metadata availability into the future, aiding in the discoverability of data assets. It also simplifies integration with the rest of the Ocean system, which is Ethereum-based. Storage cost on Ethereum mainnet is not negligible, but not prohibitive and the other benefits are currently worth the trade-off compared to alternatives. diff --git a/developers/asset-pricing.md b/developers/asset-pricing.md index e32d7b2a..c5e60832 100644 --- a/developers/asset-pricing.md +++ b/developers/asset-pricing.md @@ -17,7 +17,7 @@ A [FixedRateExchange](https://github.com/oceanprotocol/contracts/blob/v4main/con The image below shows how to set the fixed pricing of an asset in the Ocean's Marketplace. Here, the price of the asset is set to 10 Ocean tokens. -![Fixed asset pricing](../.gitbook/assets/market/fixed-asset-pricing.png) +![Fixed asset pricing](.gitbook/assets/market/fixed-asset-pricing.png) ### Free pricing @@ -29,4 +29,4 @@ Free pricing is suitable for individuals and organizations working in the public The image below shows how to set free access to an asset in the Ocean's Marketplace. -![Free asset pricing](../.gitbook/assets/market/free-asset-pricing.png) +![Free asset pricing](.gitbook/assets/market/free-asset-pricing.png) diff --git a/tutorials/build-a-marketplace/README.md b/developers/build-a-marketplace/README.md similarity index 70% rename from tutorials/build-a-marketplace/README.md rename to developers/build-a-marketplace/README.md index c17b367a..915c47b9 100644 --- a/tutorials/build-a-marketplace/README.md +++ b/developers/build-a-marketplace/README.md @@ -19,9 +19,9 @@ Using Ocean Market is already a big improvement on the alternatives that are out The tutorial covers: -- Forking and running Ocean Market locally -- Customising your fork of Ocean market -- Quick deployment of Ocean Market +* Forking and running Ocean Market locally +* Customising your fork of Ocean market +* Quick deployment of Ocean Market ## Preparation @@ -29,14 +29,14 @@ The tutorial covers: If you’re completely unfamiliar with Ocean Market or web3 applications in general, you will benefit from reading these guides first: -- To use your clone of Ocean Market, you’ll need a [wallet](../wallets.md). We recommend [getting set up with metamask](../../orientation/metamask-setup.md). -- You’ll also need some [Ocean tokens on a testnet](../wallets-and-ocean-tokens.md) to use your marketplace. -- When you have the testnet tokens, have a go at [publishing a data asset](../../using-ocean-market/marketplace-publish-data-asset.md) on Ocean Market. -- Run through the process of [consuming a data asset](../../using-ocean-market/marketplace-download-data-asset.md) on Ocean Market. +* To use your clone of Ocean Market, you’ll need a [wallet](../../tutorials/wallets.md). We recommend [getting set up with metamask](../../orientation/metamask-setup.md). +* You’ll also need some [Ocean tokens on a testnet](../../tutorials/wallets-and-ocean-tokens.md) to use your marketplace. +* When you have the testnet tokens, have a go at [publishing a data asset](../../using-ocean-market/marketplace-publish-data-asset.md) on Ocean Market. +* Run through the process of [consuming a data asset](../../using-ocean-market/marketplace-download-data-asset.md) on Ocean Market. **Required Prerequisites** -- Git. Instructions for installing Git can be found [here](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git). -- Node.js can be downloaded from [here](https://nodejs.org/en/download/) (we’re using version 16 in this guide) -- A decent code editor, such as [Visual Studio Code](https://code.visualstudio.com/). -- You’ll need a Github account to fork Ocean market via [Github](https://github.com/). +* Git. Instructions for installing Git can be found [here](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git). +* Node.js can be downloaded from [here](https://nodejs.org/en/download/) (we’re using version 16 in this guide) +* A decent code editor, such as [Visual Studio Code](https://code.visualstudio.com/). +* You’ll need a Github account to fork Ocean market via [Github](https://github.com/). diff --git a/tutorials/build-a-marketplace/customising-your-market.md b/developers/build-a-marketplace/customising-your-market.md similarity index 100% rename from tutorials/build-a-marketplace/customising-your-market.md rename to developers/build-a-marketplace/customising-your-market.md diff --git a/tutorials/build-a-marketplace/deploying-market.md b/developers/build-a-marketplace/deploying-market.md similarity index 100% rename from tutorials/build-a-marketplace/deploying-market.md rename to developers/build-a-marketplace/deploying-market.md diff --git a/tutorials/build-a-marketplace/forking-ocean-market.md b/developers/build-a-marketplace/forking-ocean-market.md similarity index 100% rename from tutorials/build-a-marketplace/forking-ocean-market.md rename to developers/build-a-marketplace/forking-ocean-market.md diff --git a/developers/datanft-and-datatoken.md b/developers/datanft-and-datatoken.md index 308593ec..6bb83d28 100644 --- a/developers/datanft-and-datatoken.md +++ b/developers/datanft-and-datatoken.md @@ -11,7 +11,7 @@ A non-fungible token stored on the blockchain represents a unique asset. NFTs ca Fungible tokens represent fungible assets. If you have 5 ETH and Alice has 5 ETH, you and Alice could swap your ETH and your final holdings remain the same. They're apples-to-apples. Licenses (contracts) to access a copyrighted asset are naturally fungible - they can be swapped with each other. -![Data NFT and datatoken](../../.gitbook/assets/architecture/datanft-and-datatoken.png) +![Data NFT and datatoken](../.gitbook/assets/architecture/datanft-and-datatoken.png) ## What is a Data NFT? @@ -62,7 +62,7 @@ Ocean provides convenient methods to list ERC20 datatokens for sale, with fixed- ### High-Level Behavior -![High-Level Flow](<../../.gitbook/assets/architecture/high-level-flow (1).png>) +![High-Level Flow](../.gitbook/assets/architecture/high-level-flow.png) Here's an example. @@ -77,7 +77,7 @@ In some situations, you may want the revenue to be sent to another account rathe In order to set a new payment collector, you need to visit the asset detail page and then click on “Edit Asset” and then scroll down to the field call “Payment Collector Address”. Add the new Ethereum address in this field and then click “Submit“. Finally, you will then need to sign two transactions to finalize the update. -![Update Payment Collector](../../.gitbook/assets/market/change-payment-collector.png) +![Update Payment Collector](../.gitbook/assets/market/change-payment-collector.png) ### TemplateIds diff --git a/tutorials/using-ocean-libraries/README.md b/developers/using-ocean-libraries/README.md similarity index 100% rename from tutorials/using-ocean-libraries/README.md rename to developers/using-ocean-libraries/README.md diff --git a/tutorials/using-ocean-libraries/configuration.md b/developers/using-ocean-libraries/configuration.md similarity index 100% rename from tutorials/using-ocean-libraries/configuration.md rename to developers/using-ocean-libraries/configuration.md diff --git a/tutorials/using-ocean-libraries/create-datatoken-with-fixed-pricing.md b/developers/using-ocean-libraries/create-datatoken-with-fixed-pricing.md similarity index 100% rename from tutorials/using-ocean-libraries/create-datatoken-with-fixed-pricing.md rename to developers/using-ocean-libraries/create-datatoken-with-fixed-pricing.md diff --git a/tutorials/using-ocean-libraries/creating-dataNFT.md b/developers/using-ocean-libraries/creating-datanft.md similarity index 100% rename from tutorials/using-ocean-libraries/creating-dataNFT.md rename to developers/using-ocean-libraries/creating-datanft.md diff --git a/tutorials/using-ocean-libraries/mint-datatoken.md b/developers/using-ocean-libraries/mint-datatoken.md similarity index 100% rename from tutorials/using-ocean-libraries/mint-datatoken.md rename to developers/using-ocean-libraries/mint-datatoken.md diff --git a/tutorials/using-ocean-libraries/update-metadata.md b/developers/using-ocean-libraries/update-metadata.md similarity index 100% rename from tutorials/using-ocean-libraries/update-metadata.md rename to developers/using-ocean-libraries/update-metadata.md diff --git a/tutorials/using-ocean-subgraph/README.md b/developers/using-ocean-subgraph/README.md similarity index 100% rename from tutorials/using-ocean-subgraph/README.md rename to developers/using-ocean-subgraph/README.md diff --git a/tutorials/using-ocean-subgraph/get-data-nft-information.md b/developers/using-ocean-subgraph/get-data-nft-information.md similarity index 100% rename from tutorials/using-ocean-subgraph/get-data-nft-information.md rename to developers/using-ocean-subgraph/get-data-nft-information.md diff --git a/tutorials/using-ocean-subgraph/get-datatoken-information.md b/developers/using-ocean-subgraph/get-datatoken-information.md similarity index 100% rename from tutorials/using-ocean-subgraph/get-datatoken-information.md rename to developers/using-ocean-subgraph/get-datatoken-information.md diff --git a/tutorials/using-ocean-subgraph/list-data-nfts.md b/developers/using-ocean-subgraph/list-data-nfts.md similarity index 100% rename from tutorials/using-ocean-subgraph/list-data-nfts.md rename to developers/using-ocean-subgraph/list-data-nfts.md diff --git a/tutorials/using-ocean-subgraph/list-datatokens.md b/developers/using-ocean-subgraph/list-datatokens.md similarity index 100% rename from tutorials/using-ocean-subgraph/list-datatokens.md rename to developers/using-ocean-subgraph/list-datatokens.md diff --git a/tutorials/using-ocean-subgraph/list-fixed-rate-exchanges.md b/developers/using-ocean-subgraph/list-fixed-rate-exchanges.md similarity index 100% rename from tutorials/using-ocean-subgraph/list-fixed-rate-exchanges.md rename to developers/using-ocean-subgraph/list-fixed-rate-exchanges.md diff --git a/discover/explore.md b/discover/explore.md index d69dcf13..a909347f 100644 --- a/discover/explore.md +++ b/discover/explore.md @@ -41,7 +41,7 @@ These are a few examples of what can be built on top of Ocean. You can choose from two options: -1. **Fork the** [**Ocean Marketplace**](https://github.com/oceanprotocol/market) **and customize it**: You have the ability to fork the existing [Ocean Marketplace](https://github.com/oceanprotocol/market) codebase and customize it according to your needs. This allows you to leverage the foundational infrastructure and functionality already built by Ocean Protocol while tailoring the user interface, features, and branding to align with your marketplace vision. Follow this [tutorial](../tutorials/build-a-marketplace/) to learn how to do it. +1. **Fork the** [**Ocean Marketplace**](https://github.com/oceanprotocol/market) **and customize it**: You have the ability to fork the existing [Ocean Marketplace](https://github.com/oceanprotocol/market) codebase and customize it according to your needs. This allows you to leverage the foundational infrastructure and functionality already built by Ocean Protocol while tailoring the user interface, features, and branding to align with your marketplace vision. Follow this [tutorial](../developers/build-a-marketplace/) to learn how to do it. 2. **Build your marketplace with Ocean components**: Alternatively, you can build your data marketplace from scratch using Ocean Protocol's modular components. Ocean provides a comprehensive set of building blocks, such as the [**Aquarius**](https://github.com/oceanprotocol/aquarius), [**Provider**](https://github.com/oceanprotocol/provider), Ocean [contracts](https://github.com/oceanprotocol/contracts), and Ocean libraries([**ocean.js**](https://github.com/oceanprotocol/ocean.js) & [**ocean.py**](https://github.com/oceanprotocol/ocean.py)), which you can integrate into your own marketplace development. This empowers you to create a unique and customized data marketplace experience while leveraging the underlying capabilities and standards provided by Ocean Protocol. @@ -64,9 +64,9 @@ To showcase these capabilities, Ocean developed a demonstrator marketplace known The following guides will help you get started with buying and selling data: -* [Publish an NFT](../how-tos/marketplace-publish-data-asset.md) -* [Download an NFT](../how-tos/marketplace-download-data-asset.md) -* [Host Assets](../how-tos/asset-hosting/) +* [Publish an NFT](../user-guides/marketplace-publish-data-asset.md) +* [Download an NFT](../user-guides/marketplace-download-data-asset.md) +* [Host Assets](../user-guides/asset-hosting/) diff --git a/how-tos/README.md b/how-tos/README.md deleted file mode 100644 index e8a654e6..00000000 --- a/how-tos/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# 📜 How To's - diff --git a/infrastructure/setup-server.md b/infrastructure/setup-server.md index cf250bac..9654f6fb 100644 --- a/infrastructure/setup-server.md +++ b/infrastructure/setup-server.md @@ -28,7 +28,7 @@ Select Ubuntu OS and choose a plan. The required CPU, Memory depends on the numb Also, select the region where you want Aquarius to be hosted and a root password. -![Select region](../.gitbook/assets/server-setup/server-setup3.png) +![Select region](<../.gitbook/assets/server-setup/server-setup3 (1).png>) ![Click create Droplet](../.gitbook/assets/server-setup/server-setup4.png) diff --git a/tutorials/README.md b/tutorials/README.md deleted file mode 100644 index c5ff3226..00000000 --- a/tutorials/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# 📚 Tutorials - diff --git a/user-guides/README.md b/user-guides/README.md new file mode 100644 index 00000000..afa9233b --- /dev/null +++ b/user-guides/README.md @@ -0,0 +1,2 @@ +# 📚 User Guides + diff --git a/how-tos/asset-hosting/README.md b/user-guides/asset-hosting/README.md similarity index 87% rename from how-tos/asset-hosting/README.md rename to user-guides/asset-hosting/README.md index 8033681c..627b773e 100644 --- a/how-tos/asset-hosting/README.md +++ b/user-guides/asset-hosting/README.md @@ -24,7 +24,7 @@ Read on, anon, if you are interested in the security details! These guys know what's up {% endembed %} -When you publish your asset as an NFT, then the URL/TX ID/CID required to access the asset is encrypted and stored as a part of the NFT's [DDO](../../developers/core-concepts/did-ddo.md) on the blockchain. Buyers don't have access directly to this information, but they interact with the [Provider](https://github.com/oceanprotocol/provider#provider), which decrypts the DDO and acts as a proxy to serve the asset. +When you publish your asset as an NFT, then the URL/TX ID/CID required to access the asset is encrypted and stored as a part of the NFT's [DDO](broken-reference) on the blockchain. Buyers don't have access directly to this information, but they interact with the [Provider](https://github.com/oceanprotocol/provider#provider), which decrypts the DDO and acts as a proxy to serve the asset. We recommend implementing a security policy that allows **only the Provider's IP address to access the file** and blocks requests from other unauthorized actors is recommended. Since not all hosting services provide this feature, **you must carefully consider the security features while choosing a hosting service.** diff --git a/how-tos/asset-hosting/arweave.md b/user-guides/asset-hosting/arweave.md similarity index 100% rename from how-tos/asset-hosting/arweave.md rename to user-guides/asset-hosting/arweave.md diff --git a/how-tos/asset-hosting/aws.md b/user-guides/asset-hosting/aws.md similarity index 100% rename from how-tos/asset-hosting/aws.md rename to user-guides/asset-hosting/aws.md diff --git a/how-tos/asset-hosting/azure-cloud.md b/user-guides/asset-hosting/azure-cloud.md similarity index 69% rename from how-tos/asset-hosting/azure-cloud.md rename to user-guides/asset-hosting/azure-cloud.md index 975b6f35..ff761e2e 100644 --- a/how-tos/asset-hosting/azure-cloud.md +++ b/user-guides/asset-hosting/azure-cloud.md @@ -18,41 +18,41 @@ Create an account on [Azure](https://azure.microsoft.com/en-us/). Users might al Go to the Azure portal: https://portal.azure.com/#home and select `Storage accounts` as shown below. -![Select storage accounts](<../../.gitbook/assets/hosting/azure1 (1).png>) +![Select storage accounts](../../.gitbook/assets/hosting/azure1.png) **Create a new storage account** -![Create a storage account](../../.gitbook/assets/hosting/azure2.png) +![Create a storage account](<../../.gitbook/assets/hosting/azure2 (1).png>) **Fill in the details** -![Add details](<../../.gitbook/assets/hosting/azure3 (1).png>) +![Add details](../../.gitbook/assets/hosting/azure3.png) **Storage account created** -![Storage account created](../../.gitbook/assets/hosting/azure4.png) +![Storage account created](<../../.gitbook/assets/hosting/azure4 (1).png>) **Step 2 - Create a blob container** -![Create a blob container](<../../.gitbook/assets/hosting/azure5 (1).png>) +![Create a blob container](../../.gitbook/assets/hosting/azure5.png) **Step 3 - Upload a file** -![Upload a file](../../.gitbook/assets/hosting/azure6.png) +![Upload a file](<../../.gitbook/assets/hosting/azure6 (1).png>) **Step 4 - Share the file** **Select the file to be published and click Generate SAS** -![Click generate SAS](<../../.gitbook/assets/hosting/azure7 (1).png>) +![Click generate SAS](../../.gitbook/assets/hosting/azure7.png) **Configure the SAS details and click `Generate SAS token and URL`** -![Generate link to file](../../.gitbook/assets/hosting/azure8.png) +![Generate link to file](<../../.gitbook/assets/hosting/azure8 (1).png>) **Copy the generated link** -![Copy the link](../../.gitbook/assets/hosting/azure9.png) +![Copy the link](<../../.gitbook/assets/hosting/azure9 (1).png>) **Step 5 - Publish the asset using the generated link** diff --git a/how-tos/claim-ocean-rewards.md b/user-guides/claim-ocean-rewards.md similarity index 90% rename from how-tos/claim-ocean-rewards.md rename to user-guides/claim-ocean-rewards.md index 14f30e3a..39ecb416 100644 --- a/how-tos/claim-ocean-rewards.md +++ b/user-guides/claim-ocean-rewards.md @@ -12,7 +12,7 @@ Want to begin [data farming](https://df.oceandao.org)? Start [here](get-veocean- Go to [https://df.oceandao.org/](https://df.oceandao.org), and click the Rewards [link](https://df.oceandao.org/activerewards) at the top of the page. -

Click the Rewards link at the top of the page

+

Click the Rewards link at the top of the page

### Step 2 - Click the pink 'Claim # OCEAN' buttons 🛎️ diff --git a/how-tos/compute-to-data/README.md b/user-guides/compute-to-data/README.md similarity index 100% rename from how-tos/compute-to-data/README.md rename to user-guides/compute-to-data/README.md diff --git a/how-tos/compute-to-data/make-a-boss-c2d-algorithm.md b/user-guides/compute-to-data/make-a-boss-c2d-algorithm.md similarity index 100% rename from how-tos/compute-to-data/make-a-boss-c2d-algorithm.md rename to user-guides/compute-to-data/make-a-boss-c2d-algorithm.md diff --git a/how-tos/compute-to-data/publish-a-c2d-algorithm-nft.md b/user-guides/compute-to-data/publish-a-c2d-algorithm-nft.md similarity index 95% rename from how-tos/compute-to-data/publish-a-c2d-algorithm-nft.md rename to user-guides/compute-to-data/publish-a-c2d-algorithm-nft.md index e058b69d..dc658865 100644 --- a/how-tos/compute-to-data/publish-a-c2d-algorithm-nft.md +++ b/user-guides/compute-to-data/publish-a-c2d-algorithm-nft.md @@ -48,7 +48,7 @@ description: How to publish a C2D algorithm NFT on the Ocean Market * Your preview should look like the following: -
+
#### Step 8 - Submit the transactions diff --git a/how-tos/compute-to-data/publish-a-c2d-data-nft.md b/user-guides/compute-to-data/publish-a-c2d-data-nft.md similarity index 95% rename from how-tos/compute-to-data/publish-a-c2d-data-nft.md rename to user-guides/compute-to-data/publish-a-c2d-data-nft.md index d1de09e9..7ea9b82c 100644 --- a/how-tos/compute-to-data/publish-a-c2d-data-nft.md +++ b/user-guides/compute-to-data/publish-a-c2d-data-nft.md @@ -76,7 +76,7 @@ description: How to publish a data NFT with C2D configurations #### Congratulations! You have fully finished the C2D flow. Check your work by verifying that your algorithm appears on the data NFT's page, like in the following example: -

Your algorithm should appear now on the data NFT's page!

+

Your algorithm should appear now on the data NFT's page!

If you would like to run the compute job, then simply click the radio button to the left of the algorithm's name and click Buy Compute Job. diff --git a/how-tos/get-veocean-tokens.md b/user-guides/get-veocean-tokens.md similarity index 100% rename from how-tos/get-veocean-tokens.md rename to user-guides/get-veocean-tokens.md diff --git a/how-tos/how-to-data-farm.md b/user-guides/how-to-data-farm.md similarity index 100% rename from how-tos/how-to-data-farm.md rename to user-guides/how-to-data-farm.md diff --git a/how-tos/marketplace-download-data-asset.md b/user-guides/marketplace-download-data-asset.md similarity index 100% rename from how-tos/marketplace-download-data-asset.md rename to user-guides/marketplace-download-data-asset.md diff --git a/how-tos/marketplace-publish-data-asset.md b/user-guides/marketplace-publish-data-asset.md similarity index 98% rename from how-tos/marketplace-publish-data-asset.md rename to user-guides/marketplace-publish-data-asset.md index 2b0d8bac..1779f683 100644 --- a/how-tos/marketplace-publish-data-asset.md +++ b/user-guides/marketplace-publish-data-asset.md @@ -93,9 +93,9 @@ With the _fixed pricing_ schema, the publisher sets the price that buyers will p With the _free pricing_ schema, the publisher provides an asset that is free to be downloaded by anyone. -For more information on the pricing models, please refer this [document](../developers/core-concepts/asset-pricing.md). +For more information on the pricing models, please refer this [document](../developers/asset-pricing.md). -For a deep dive into the fee structure, please refer to this [document](../developers/core-concepts/fees.md). +For a deep dive into the fee structure, please refer to this [document](../developers/fees.md). ![Asset pricing](../.gitbook/assets/market/publish-3.png) diff --git a/how-tos/remove-liquidity-using-etherscan.md b/user-guides/remove-liquidity-using-etherscan.md similarity index 89% rename from how-tos/remove-liquidity-using-etherscan.md rename to user-guides/remove-liquidity-using-etherscan.md index c9d77736..3cc882fc 100644 --- a/how-tos/remove-liquidity-using-etherscan.md +++ b/user-guides/remove-liquidity-using-etherscan.md @@ -14,7 +14,7 @@ Liquidity pools and dynamic pricing used to be supported in previous versions of 4\. Go to field `20. balanceOf` and insert your ETH address. This will retrieve your pool share token balance in wei. -

Balance Of

+

Balance Of

5\. Copy this number as later you will use it as the `poolAmountIn` parameter. @@ -39,4 +39,4 @@ Liquidity pools and dynamic pricing used to be supported in previous versions of 10\. Confirm transaction in Metamask -

Confirm transaction

+

Confirm transaction

diff --git a/how-tos/using-ocean-market.md b/user-guides/using-ocean-market.md similarity index 100% rename from how-tos/using-ocean-market.md rename to user-guides/using-ocean-market.md