base on Bitcoin Wallet app for your Android device. Standalone Bitcoin node, no centralized backend required. # BITCOIN WALLET Welcome to _Bitcoin Wallet_, a standalone Bitcoin payment app for your Android device! This project contains several sub-projects: * __wallet__: The Android app itself. This is probably what you're searching for. * __metadata__: App description and promo material for the app stores. ### PREREQUISITES FOR BUILDING You'll need git, a Java 11 SDK and Gradle between 4.4 and 6.9.x for this. We'll assume Ubuntu 24.04 LTS (Noble Numbat) for the package installs, which comes with OpenJDK 11 and Gradle 4.4.1 out of the box. # first time only sudo apt install git gradle openjdk-11-jdk Create a directory for the Android SDK (e.g. `android-sdk`) and point the `ANDROID_HOME` variable to it. Download the [Android SDK Tools](https://developer.android.com/studio/index.html#command-tools) and unpack it to `$ANDROID_HOME/`. Finally, the last preparative step is acquiring the source code. Again in your workspace, use: # first time only git clone -b main https://github.com/bitcoin-wallet/bitcoin-wallet.git bitcoin-wallet cd bitcoin-wallet ### BUILDING You can build all sub-projects in all flavors at once using Gradle: # each time gradle clean build For details about building the wallet see the [specific README](wallet/README.md). ### REPRODUCIBLE BUILD Alternatively, you can build using buildah: # each time buildah build --cap-add sys_admin --device /dev/fuse --file build.Containerfile --output build/ . Access to FUSE and the SYS_ADMIN capability are needed for mounting disorderfs in order to sort the directory entries of the project folder. The unsigned APKs are written to the specified output directory. ", Assign "at most 3 tags" to the expected json: {"id":"5824","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"