Skip to content

๐Ÿ› A programmable financial ledger to build money-moving apps

License

Notifications You must be signed in to change notification settings

personal-forks/finance-ledger

ย 
ย 

Repository files navigation

Formance Ledger test goreportcard slack codecov


Formance Ledger is a programmable financial ledger, developed as part of the Formance Stack. It comes with atomic, multi-postings transactions and is programmable in Numscript, a built-in DSL dedicated to modelling money movements. It will shine in apps that require complex, money-moving code, e.g:

  • E-commerce with complex payments flows, payments splitting, such as marketplaces
  • Company-issued currencies systems, e.g. Twitch Bits
  • In-game currencies, inventories and trading systems, e.g. Fortnite V-Bucks
  • Payment gateways using non-standard assets, e.g. learning credits
  • Local currencies and complementary finance

Getting started

Formance Ledger works as a standalone binary, the latest of which can be downloaded from the releases page. You can move the binary to any executable path, such as to /usr/local/bin. Installations using brew, apt, yum or docker are also available.

ledger server start

# Submit a first transaction
echo "
send [USD/2 599] (
  source = @world
  destination = @payments:001
)

send [USD/2 599] (
  source = @payments:001
  destination = @rides:0234
)

send [USD/2 599] (
  source = @rides:0234
  destination = {
    85/100 to @drivers:042
    15/100 to @platform:fees
  }
)
" > example.num

ledger exec quickstart example.num

# Get the balances of drivers:042
curl -X GET http:https://localhost:3068/quickstart/accounts/drivers:042

# List transactions
curl -X GET http:https://localhost:3068/quickstart/transactions

Documentation

You can find the complete Numary documentation at docs.formance.com

Community

If you need help, want to show us what you built or just hang out and chat about ledgers you are more than welcome on our Slack - looking forward to see you there!

How to contribute

Want to contribute to the project? Please read the CONTRIBUTING.md file.

We are using Task to easily lint or test the project locally. You can install it with:

go install github.com/go-task/task/v3/cmd/task@latest

Then you can run task to run both the linters and the tests. You will find other tasks in the Taskfile.

Contributors โœจ

Thanks goes to these wonderful people (emoji key):


Alix Bott

๐Ÿ’ป

Maxence Maireaux

๐Ÿš‡ ๐Ÿ“ฆ ๐Ÿ’ป

Henry Jackson

๐Ÿ’ป

Matias Insaurralde

๐Ÿ’ป ๐Ÿ‘€

David barinas

๐Ÿ’ป

David Jimenez

๐Ÿ’ป

Clรฉment Salaรผn

๐Ÿค”

Karmanyaah Malhotra

๐Ÿ““

Antoine Gelloz

๐Ÿ’ป

jdupas22

๐Ÿ’ป

Edward Poot

๐Ÿ’ป

Nico Gallinal

๐Ÿ›

Ragot Geoffrey

๐Ÿ’ป

This project follows the all-contributors specification. Contributions of any kind welcome!

About

๐Ÿ› A programmable financial ledger to build money-moving apps

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 95.6%
  • PLpgSQL 3.2%
  • Earthly 0.5%
  • ANTLR 0.5%
  • Dockerfile 0.2%
  • Shell 0.0%