[{"data":1,"prerenderedAt":208},["ShallowReactive",2],{"navigation_docs":3,"-math":44,"-math-surround":203},[4,24],{"title":5,"path":6,"stem":7,"children":8,"icon":23},"Guide","\u002Fguide","1.guide\u002F01.index",[9,11,15,19],{"title":10,"path":6,"stem":7},"Getting started",{"title":12,"path":13,"stem":14},"CLI","\u002Fguide\u002Fcli","1.guide\u002F02.cli",{"title":16,"path":17,"stem":18},"Agents","\u002Fguide\u002Fagents","1.guide\u002F03.agents",{"title":20,"path":21,"stem":22},"Playground","\u002Fguide\u002Fplayground","1.guide\u002F04.playground","i-lucide-book-open",{"title":25,"path":26,"stem":27,"children":28,"icon":43},"Math","\u002Fmath","2.math\u002F00.index",[29,31,35,39],{"title":30,"path":26,"stem":27},"Overview",{"title":32,"path":33,"stem":34},"Curves and points","\u002Fmath\u002Fcurves","2.math\u002F01.curves",{"title":36,"path":37,"stem":38},"Orders and logs","\u002Fmath\u002Fgroups","2.math\u002F02.groups",{"title":40,"path":41,"stem":42},"secp256k1","\u002Fmath\u002Fsecp256k1","2.math\u002F03.secp256k1","i-lucide-sigma",{"id":45,"title":30,"body":46,"description":196,"extension":197,"links":198,"meta":199,"navigation":200,"path":26,"seo":201,"stem":27,"__hash__":202},"docs\u002F2.math\u002F00.index.md",{"type":47,"value":48,"toc":190},"minimark",[49,54,58,163,166,170],[50,51,53],"h2",{"id":52},"two-kinds-of-curve","Two kinds of curve",[55,56,57],"p",{},"Every curve here has the short Weierstrass form, y² = x³ + ax + b, over the integers mod a prime p. That covers the toy curves of a CTF and secp256k1 alike. The difference is in what you hand over.",[59,60,61,75],"table",{},[62,63,64],"thead",{},[65,66,67,70,73],"tr",{},[68,69],"th",{},[68,71,72],{},"Curves you define",[68,74,40],{},[76,77,78,95,108,126,137,148],"tbody",{},[65,79,80,84,90],{},[81,82,83],"td",{},"Import",[81,85,86],{},[87,88,89],"code",{},"@agntn\u002Fcurves",[81,91,92],{},[87,93,94],{},"@agntn\u002Fcurves\u002Fsecp256k1",[65,96,97,100,105],{},[81,98,99],{},"Curve",[81,101,102],{},[87,103,104],{},"defineCurve({ a, b, p })",[81,106,107],{},"fixed, from SEC 2",[65,109,110,113,123],{},[81,111,112],{},"Points",[81,114,115,118,119,122],{},[87,116,117],{},"{ x, y }"," as bigints, ",[87,120,121],{},"null"," for infinity",[81,124,125],{},"SEC1 hex, infinity refused",[65,127,128,131,134],{},[81,129,130],{},"Scalars",[81,132,133],{},"any bigint",[81,135,136],{},"1 to n - 1, hex or bigint",[65,138,139,142,145],{},[81,140,141],{},"Extra",[81,143,144],{},"counting, listing, orders, logs",[81,146,147],{},"scalars mod n, lifting x",[65,149,150,153,158],{},[81,151,152],{},"Agent tool",[81,154,155],{},[87,156,157],{},"curves_compute",[81,159,160],{},[87,161,162],{},"curves_secp256k1_compute",[55,164,165],{},"Why two? A toy curve is about the group. Count the points, find an order, take a log. secp256k1 is about keys. Nobody counts its points, and a log on it is not happening.",[50,167,169],{"id":168},"pages","Pages",[171,172,173,180,185],"ul",{},[174,175,176,179],"li",{},[177,178,32],"a",{"href":33},": define a curve, add and multiply points, check one.",[174,181,182,184],{},[177,183,36],{"href":37},": count, list, orders, discrete logs, and how far each goes.",[174,186,187,189],{},[177,188,40],{"href":41},": SEC1 points, scalars mod n, lifting x.",{"title":191,"searchDepth":192,"depth":192,"links":193},"",2,[194,195],{"id":52,"depth":192,"text":53},{"id":168,"depth":192,"text":169},"What the package computes. Short Weierstrass curves over a prime you pick and secp256k1 on its own","md",null,{},{"title":30},{"title":30,"description":196},"DZR4vAbMlNCC2S3kfrf9uQZ5oP8M5yfmf6NYEQp7two",[204,206],{"title":20,"path":21,"stem":22,"description":205,"children":-1},"Both tools in the browser with every state in the URL",{"title":32,"path":33,"stem":34,"description":207,"children":-1},"Define a short Weierstrass curve over a prime and add and double and negate and multiply its points",1791293523358]